ボタンのない電卓を作りたいです。関数の計算について教えてください。私は2つの配列を持っています。最初の配列は数値で、2番目は算術演算子です。関数計算では、最初の配列から 1 つの要素を送信し、2 番目の配列から 1 つの要素を送信する必要がありますが、機能しません。最終的なプログラムでは、答えを数字として与えなければなりません。reduce メソッドについて説明してもらえますか? 2 番目の配列をパラメーターとして送信できますか? ドキュメントでは、要素を合計するだけであることがわかりました。関数を使用したメソッド reduce の例を誰かが書いてくれたら、とてもありがたいです。これが私のコードです。
var str = ("1+1+1+1-1*3");
var reg = /(\d+\.\d+)|\d+/g;
var myArray = str.match(reg);
var reg1 = /['+','-','*',"/"]/g;
var myArray2 = str.match(reg1);
console.log(myArray);
console.log(myArray2);
var i = 0;
function calculate(prev,curr,i){
if(myArray2[i] === "+"){
//
curr = parseInt(prev,10)+parseInt(curr,10);
}
else if(myArray2[i]==='-'){
//
curr = prev-curr;}
else if(myArray2[i] ==='*'){
//
return prev*curr;
}
else{
//
return prev/curr;
}
}
var finAns = myArray.reduce(calculate);
alert ("Answer = " +finAns);