Reemplazar Switch for Objetos literales en JavaScript

8681 단어
Probablemente más de algunos de ustedes habrán escuchado en repetidas ocaciones que suele ser mejor usar Object Literals en lugar de sentencias switch o 포함 if .

Las sentencias switch, son de las primeras cosas que arendemos cuando entramos al mundo de la programación, y no, no están obsoletas. 많은 프로그램이 JavaScript를 계속 사용하고 있기 때문에 사용 중인 스위치를 사용할 수 없습니다.

¿Qué es una sentencia 스위치?



Nos permite evaluar una expresión, haciendo coincidir el valor de la expresión con una clausula de caso y ejecuta las declaraciones asociadas con ese caso, veamos un ejemplo:

function obtenerPrecio(producto) {
  switch (producto) {
    case "Naranjas":
      return 2;
    case "Mangos":
      return 2.5;
    case "Papayas":
      return 3;
    default:
        return 0
  }
}

obtenerPrecio("Papayas"); // Salida: 3


Podemos observar que essimilar a sentencias de tipo if-else, con la diferencia que evalúa un único valor.

¿Qué pasa si olvido un break o return?



El inconveniente más común que nos encontramos, es la forma en la que maneja el flujo de control, por ejemplo si nos olvidamos de colocar el 'break' seguirá ejecutando las lineas siguientes de código aún estrabanó en ende, estamos obligados añadir estas pausas. En el siguiente ejemplo, si expresión se resuelve a "Platanos", el algoritmo compara el valor con el case "Platanos"y ejecuta la declaración asociada. Cuando se encuentra un break , el programa sale del condicional switch y ejecuta la declaración que lo procede. Si se omite el break , 엘 케이스 "Cerezas"también es ejecutado. Este codigo lo pueden encontrar acá .

switch (expr) {
  case 'Naranjas':
    console.log('El kilogramo de naranjas cuesta $0.59.');
    break;
  case 'Manzanas':
    console.log('El kilogramo de manzanas cuesta $0.32.');
    break;
  case 'Platanos':
    console.log('El kilogramo de platanos cuesta $0.48.');
    break;
  case 'Cerezas':
    console.log('El kilogramo de cerezas cuesta $3.00.');
    break;
  case 'Mangos':
  case 'Papayas':
    console.log('El kilogramo de mangos y papayas cuesta $2.79.');
    break;
  default:
    console.log('Lo lamentamos, por el momento no disponemos de ' + expr + '.');
}

console.log("¿Hay algo más que te quisiera consultar?");


¿Por qué reemplazarlo por objetos literales?



Como hemos dicho, en JavaScript estamos acostumbrados a utilizar objetos para casi todo, ya sea como constructores o como objetos literales. 새로운 데이터 기반, 정보 변수에 대한 정보 사용 목적 리터럴 드 로스 cuales extraemos valores de sus propiedades.

const productos = {
    "naranjas": 2,
    "mangos": 2.5,
    "papayas": 3,
    "default": 0
}
function obtenerPrecio(producto) {
  return productos[producto.toLowerCase()] || productos['default'];
}

obtenerPrecio("Papayas"); // Salida: 3


Hemos logrado ahorrarnos algunas líneas de codigo, pero principalmente hemos conseguido mayor legibilidad y no tenemos que preocuparnos por escribir pausas en el codigo.

좋은 웹페이지 즐겨찾기