我有这个数组finalArr = [12,+,4,-,8,*,2];
我想将数组减少为单个值,例如:var result = 12+4-8*2;
这是我所做的:
var operators = {'+' : function (a,b) {return a + b},
'-' : function (a,b){return a - b},
'*' : function (a,b){return a * b},
'/' : function (a,b){return a / b}};
var opSymbols = ['+','-','*','/'];
finalArr = [12,+,4,-,8,*,2];
finalArr.reduce(function (acc,next,index,arr){
for (var m = 0; m < opSymbols.length; m++) {
var op = '';
if (opSymbols[m] === arr[1]) {
op = opSymbols[m];
acc = operators[op](arr[0],arr[2]);
}
if (index > 1 && opSymbols[m] === arr[index]) {
op = opSymbols[m];
acc += arr[index+1];
}
}
return acc;
});
我在finalArr.reduce行中遇到语法错误(SyntaxError:期望的表达式,得到了','),而且我认为我没有正确执行reduce方法。有什么帮助吗?谢谢
最佳答案
运算符是字符串,因此您需要引用它们:
finalArr = [12,'+',4,'-',8,'*',2];
关于javascript - 使用reduce方法处理数组元素,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/40504275/