Empresas
Empregos
  • Sobre nós
  • Soluções
    • Publicação de vagas
      Publique sua vaga e receba candidatos qualificados em 48h.
    • Avaliações de candidatos
      Mais de 500 testes técnicos e psicológicos, mais anti-fraude.
    • Headhunting
      Busca executiva personalizada do início ao fim.
    • Folha de Pagamento + EOR
      Dispersão de folha e EOR em mais de 15 países da LATAM.
  • Preços
  • Empregos

0

150
Visualizações
¿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 Respostas
Responde à pergunta

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 Relatório
Responde à pergunta
Encontrar trabalhos remotos

Descubra a nova forma de encontrar um emprego!

melhores empregos
Principais categorias de trabalho
Empresas
Postar vaga Preços Comercial
Jurídico
Termos e Condições Política de privacidade
© 2026 PeakU Inc. All Rights Reserved.
Andres GPT
Recomende algumas ofertas para mim
Preciso de ajuda