Tengo un código que sería muy repetitivo, que según el nombre de la cadena de un array ejecuta una función u otra.
Doy un ejemplo de un código como pude hacerlo.
// I use underscore in NodeJS _.each(refresh, (value, key) => { if(key === 'station') { station.add({ id: value }); } else if(key === 'concentrator') { concentrator.add({ id: value }); } else if.... });Es posible ejecutar la función de acuerdo con su cadena para evitar tanta verificación con IF, etc.
[key].add({ id: value });llevo varias horas viendo en internet sobre el uso de call, apply, etc; pero no entiendo como funciona bien, quizás porque mi conocimiento de Javascript no es avanzado.
Gracias !
Crear una función anónima en un objeto es el mejor enfoque. Como puede usar la tecla para llamar al método.
Aquí hay un ejemplo en lápiz de código: https://codepen.io/liam-hamblin/pen/KKyapNP
El código anterior toma la clave utilizada para asignar la función y no requiere ninguna verificación. Sin embargo, siempre es el mejor enfoque verificar que la clave existe antes de llamar.
const operations = {}; operations.add = (obj) => { document.write("add - "); document.write(JSON.stringify(obj)); } operations.subtract = (obj) => { document.write("subtract - "); document.write(JSON.stringify(obj)); } const input = prompt("Enter Function Name, type either subtract or add"); if (operations[input]) { operations[input]({id:1}); } else { document.write("no matching method") }