Estoy tratando de hacer sumas con palabras humanas. Mi código toma la entrada, corta cada palabra y la inserta en una matriz llamada DL. Esto funciona sin problemas, y si lo desconectas de console.log , hace esto:
[ 'add' ] [ 'add', '6' ] [ 'add', '6', 'and' ] [ 'add', '6', 'and', '4' ]Ahora tengo una matriz en el código que se supone que actúa como 'operadores'. Se parece a esto:
var operator = [ "add", "sub", "mul", "div" ]Ahora quiero recorrer la matriz DL para ver si uno de los operadores está en DL. Si este caso se cumple, quiero sumar 6 y 4, y el código imprimirá 10.
Este es el código completo:
function output(func) { console.log(func) } var operator = [ "add", "sub", "mul", "div" ] var dl = [] const read = string => { return string.split(' ').map(item => { dl.push(item.trim()) console.log(dl) }) } var main = read( `add 6 and 4` ) output(main)primero, separe los operadores y los números de la matriz, puede separar estos dos dentro de un .map o usar un .filter separado
const operator = dl.find(x=>x.includes("add" , "sub" , "mul", "del")) const numbers = dl.filter(x=>Number(x))luego use una función separada para hacer las operaciones como
console.log(output()) function output(){ switch(operator){ case "add": return numbers.reduce((a, b) => Number(a) +Number(b)); case "sub": // your logic here // rest of the operators logic } }