Empresas
Empleos
  • Sobre nosotros
  • Soluciones
    • Publicación de vacantes
      Publica tu vacante y recibe candidatos calificados en 48h.
    • Evaluación de candidatos
      500+ pruebas técnicas y psicológicas, más anti-fraude.
    • Headhunting
      Búsqueda ejecutiva a la medida de principio a fin.
    • Nómina + EOR
      Dispersión de nómina y EOR en más de 15 países de LATAM.
  • Precios
  • Empleos

0

167
Vistas
Transmisión de función con interruptor de forma dinámica

Soy nuevo en javascript y estoy tratando de descubrir cómo pasar dinámicamente las funciones con el switch .

Por ejemplo, puedo pasar la función manualmente como siguiendo

 var select =1 ; function add (val){ return val+512}; function subtract(val) {return val-300}; function multiply(val){return val*584}; var value = 290; var text = `the value is ${add(value)}` console.log(text);

¿Cómo puedo transmitir una función con un interruptor basado en el valor select ? Lo siguiente no funciona.

 var select =1 ; function add (val){ return val+512}; function subtract(val) {return val-300}; function multiply(val){return val*584}; var value = 290; //switch statement switch(select){ case 1: add(value); break; case 2: subtract(value); break; case 3: multiply(value); break}; var string = `this value is ${switch(select){ case 1: add(value); break; case 2: subtract(value); break; case 3: multiply(value); break};}` console.log(string)

about 4 years ago · Juan Pablo Isaza
3 Respuestas
Responde la pregunta

0

Sugiero mover el bloque de interruptores dentro de una función, como la siguiente:

 var select = 1; function add(val) { return val + 512 }; function subtract(val) { return val - 300 }; function multiply(val) { return val * 584 }; var value = 290; var string = `this string in ${chooseFunction(select, value)}` console.log(string) function chooseFunction (select, value) { // switch statement // Note that the break statement is optional // if you return a value at the end of a case block switch (select) { case 1: return add(value); case 2: return subtract(value); case 3: return multiply(value); } }
about 4 years ago · Juan Pablo Isaza Denunciar

0

Usted escribe una función que tiene el switch que devuelve el resultado de llamar a las funciones en función de la entrada y la usa en la cadena de plantilla.

 function add(val) { return val + 512; } function subtract(val) { return val - 300; } function multiply(val) { return val * 584; } function run(value, select) { switch (select) { case 1: return add(value); case 2: return subtract(value); case 3: return multiply(value); } } const value = 290; const string1 = `This string is ${run(value, 1)}`; const string2 = `This string is ${run(value, 2)}`; const string3 = `This string is ${run(value, 3)}`; console.log(string1); console.log(string2); console.log(string3);

about 4 years ago · Juan Pablo Isaza Denunciar

0

No puede pasar un interruptor directamente, ya que no puede pasar una instrucción if sin un operador ternario. Debe encapsular su declaración de cambio en una función como esta:

 var select =1 ; function add (val){ return val+512}; function subtract(val) {return val-300}; function multiply(val){return val*584}; var value = 290; const getValue = (s, v) => { switch(s) { case 1: return add(v); case 2: return subtract(v); case 3: return multiply(v); }; } var string = `this value is ${getValue(select, value)}` console.log(string)

Otra forma de hacer esto es poner sus funciones en una matriz con el índice que hace referencia a la elección:

 var select =1 ; function add (val){ return val+512}; function subtract(val) {return val-300}; function multiply(val){return val*584}; var value = 290; const fn = [add, subtract, multiply]; var string = `this value is ${fn[select - 1](value)}` console.log(string)

about 4 years ago · Juan Pablo Isaza Denunciar
Responde la pregunta
Encuentra empleos remotos

¡Descubre la nueva forma de encontrar empleo!

Top de empleos
Top categorías de empleo
Empresas
Publicar vacante Precios Comercial
Legal
Términos y condiciones Política de privacidad
© 2026 PeakU Inc. All Rights Reserved.
Andres GPT
Recomiéndame algunas ofertas
Necesito ayuda