Business
Jobs
  • About Us
  • Solutions
    • Job Postings
      Post your job and receive qualified candidates in 48h.
    • Candidate Assessments
      500+ technical and psychological tests, plus anti-fraud.
    • Headhunting
      Tailor-made executive search from start to finish.
    • Payroll + EOR
      Payroll dispersal and EOR across 15+ LATAM countries.
  • Pricing
  • Jobs

0

142
Views
¿Cómo agregaría/restaría/multiplicaría/dividiría elementos individuales en una matriz/lista en javascript?

Estoy desarrollando una calculadora de consola javascript simple y necesito implementar una matriz/lista. Mi idea actual es crear una matriz con tres enteros/elementos (que el usuario completaría), luego (dependiendo de lo que el usuario quiera), los primeros dos elementos se sumarían/restarían/dividirían/multiplicarían, y luego el último el elemento se sumaría/restaría/dividiría/multiplicaría por separado (sin depender del primer operador) con la respuesta de los dos primeros elementos.

La matriz actual que tengo se ve así:

 var equfirst = ["num1", "num2", "num3"];

Todos los elementos de la matriz serían proporcionados por el usuario.

Primero se operaría "num1" y "num2", luego "num3" (como se indicó anteriormente). O, ¿habría una forma separada siguiendo el orden de las operaciones donde los números podrían operarse sin un orden específico?

about 4 years ago · Juan Pablo Isaza
1 answers
Answer question

0

¿Quizás la notación polaca inversa puede ser útil aquí?

RPN facilita la especificación de números y operadores de forma secuencial sin tener que usar paréntesis. Una implementación simple de JavaScript podría ser esta:

 function rpn(inps) { // Reverse Polish Notation calculator const st = []; // the stack inps.forEach(t => { if (t.length==0) return; let k = st.length - 2; // index of penultimate element on stack if (!isNaN(t)) st.push(+t); // a numeric value (operand) else switch (t) { // an operator case "+": st[k] += st.pop(); break; case "-": st[k] -= st.pop(); break; case "*": st[k] *= st.pop(); break; case "/": st[k] /= st.pop(); break; case "**": st[k] **= st.pop(); break; } }); return st.pop() } // examples: const inpArrs=[ [7,4,"-",5,"*"], // (7-4)*5= 15 [7,4,5,"*","-"], // 7- 4*5=-13 [5,7,"+",4,"/"], // (5+7)/4= 3 // or, something more complicated: // Pythagoras's theorem [3,3,"*",4,4,"*","+",.5,"**"] // sqrt(3²+4²)=5 ]; console.log(inpArrs.map(rpn)); // a commented input format: const eqn="The sum of 3, 4 and 5 in RPN is: 3 4 5 + + = "; console.log(eqn+rpn(eqn.split(" ")));

Como los elementos de la matriz de entrada se verifican para que sean numéricos o iguales a uno de una lista dada de operadores, todos los demás tipos de entrada se ignoran. Por lo tanto, las cadenas pueden verse como "comentarios".

about 4 years ago · Juan Pablo Isaza Report
Answer question
Find remote jobs

Discover the new way to find a job!

Top jobs
Top job categories
Business
Post vacancy Pricing Sales
Legal
Terms and conditions Privacy policy
© 2026 PeakU Inc. All Rights Reserved.
Andres GPT
Show me some job opportunities
There's an error!