我正在嘗試使用 reduce 來操作此計算器,但是當我嘗試將數字相乘或相除時遇到了一些問題。乘法的結果是 0,除法的結果是無窮大。我總是在陣列中得到一個 0,我嘗試使用方法 .pop() 洗掉該 0 但不起作用。希望可以有人幫幫我。
謝謝!
let resultadosObtenidos = [];
let numerosIntroducidos = [];
function iniciamosCalculadoraPRO() {
const introducirNum = () => {
let datosObtenidos = [];
let datos;
do {
datos = Number(prompt('Introduce un número.'));
if (isNaN(datos)) {
alert('Debes introducir solo números NO letras.');
return introducirNum();
} else {
datosObtenidos.push(datos);
}
}
while (datos !== 0)
return datosObtenidos
}
numerosIntroducidos = introducirNum();
const operacionesCalculadora = () => {
let operaciones = [];
if (numerosIntroducidos.length > 1) {
const suma = numerosIntroducidos.reduce((valorInicial, segundoValor) => valorInicial segundoValor);
const resta = numerosIntroducidos.reduce((valorInicial, segundoValor) => valorInicial - segundoValor);
const multiplicacion = numerosIntroducidos.reduce((valorInicial, segundoValor) => valorInicial * segundoValor);
const division = numerosIntroducidos.reduce((valorInicial, segundoValor) => valorInicial / segundoValor);
operaciones.push('La suma es: ' suma ' La resta es: ' resta ' La multiplicación es: ' multiplicacion ' La división es: ' division);
return operaciones;
}
}
resultadosObtenidos = operacionesCalculadora();
const mostramosResultadosOperaciones = () => {
if (numerosIntroducidos.length > 2) {
alert("Los resultados son: " resultadosObtenidos);
}
}
mostramosResultadosOperaciones();
const repetimosProceso = () => {
if (confirm("Quieres volver hacer calculos?")) {
return iniciamosCalculadoraPRO();
} else {
alert("Gracias por usar nuestra calculadora PRO.");
}
}
repetimosProceso();
}
iniciamosCalculadoraPRO();
我想了解如何洗掉陣列的 0 并最終在計算器中得到正確的結果
uj5u.com熱心網友回復:
您0用于結束輸入串列,但您也將其推送到datosObtenidos 陣列中。當你乘以 0 時,你得到 0。當你除以 0 時,你得到無窮大。
不應將用于終止輸入的值推送到陣列中。
introducirNum()此外,當您獲得無效輸入時,您不應遞回呼叫,因為這將丟棄所有先前的輸入。對無效輸入使用嵌套回圈。
let resultadosObtenidos = [];
let numerosIntroducidos = [];
function iniciamosCalculadoraPRO() {
const introducirNum = () => {
let datosObtenidos = [];
let datos;
while (true) {
while (true) {
datos = Number(prompt('Introduce un número.'));
if (isNaN(datos)) {
alert('Debes introducir solo números NO letras.');
} else {
break;
}
}
if (datos == 0) {
break;
} else {
datosObtenidos.push(datos);
}
}
return datosObtenidos
}
numerosIntroducidos = introducirNum();
const operacionesCalculadora = () => {
let operaciones = [];
if (numerosIntroducidos.length > 1) {
const suma = numerosIntroducidos.reduce((valorInicial, segundoValor) => valorInicial segundoValor);
const resta = numerosIntroducidos.reduce((valorInicial, segundoValor) => valorInicial - segundoValor);
const multiplicacion = numerosIntroducidos.reduce((valorInicial, segundoValor) => valorInicial * segundoValor);
const division = numerosIntroducidos.reduce((valorInicial, segundoValor) => valorInicial / segundoValor);
operaciones.push('La suma es: ' suma ' La resta es: ' resta ' La multiplicación es: ' multiplicacion ' La división es: ' division);
return operaciones;
}
}
resultadosObtenidos = operacionesCalculadora();
const mostramosResultadosOperaciones = () => {
if (numerosIntroducidos.length > 2) {
alert("Los resultados son: " resultadosObtenidos);
}
}
mostramosResultadosOperaciones();
const repetimosProceso = () => {
if (confirm("Quieres volver hacer calculos?")) {
return iniciamosCalculadoraPRO();
} else {
alert("Gracias por usar nuestra calculadora PRO.");
}
}
repetimosProceso();
}
iniciamosCalculadoraPRO();
轉載請註明出處,本文鏈接:https://www.uj5u.com/qiye/529552.html
