Objeto en lugar de swtich

Problema:

Para switch muy largos se puede cambiar por un objeto

Los switch..case se usan cuando existen sentencias formadas con if..else anidadas muy complejas.

Pero en algunos casos los switch también se pueden sustituir por objetos.

Solución

Usar un objeto cuyas propiedades sean los valores de los case del switch

En la estructura switch..case los valores en los case determinan la acción a realizar. Estos valores podemos usarlos como propiedades (o métodos) en un objeto, la acción del case se usa como valor de estas propiedades o métodos.

El ejemplo te aclarará como funciona esto

Ejemplo

Una sentencia swtich ... case podría ser tan simple como esto

switch persona{

case 'Juan':

    alert('Soy Juan');

    break;

case 'Ana':

    alert('Soy Ana');

    break;

case 'Pedro':

    alert('Soy Pedro');

    break;

defaul:

    alert("Desconocido");

}

pero podemos ponerla en forma de objeto:

let quien = "Pedro";

let persona ={

   Juan: ()=>alert('Soy Juan');

   Ana: ()=>alert('Soy Ana');

   Pedro: ()=>alert('Soy Pedro');

}

persona.Juan();  //alert con Soy Juan

persona[quien](); //alert con Soy Pedro

if (persona.Luis === undefined)

    alert("desconocido")

En este ejemplo se han usado métodos para alojar los códigos que corresponderían a cada opción de case. Y tienes tres formas de usar este sustituto del switch...case