javascript - 使用reduce方法处理数组元素

标签 javascript arrays

我有这个数组 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/

相关文章:

C#计算美元面额

ruby - 用 Ruby 整数位制作 bool 数组

javascript - 这个 javascript 会做任何事情还是不完整?

javascript - 更改parentNode.innerHTML后,无法访问parentNode

javascript - 在选择开始日期之后设置结束日期

java - 将 ArrayList 中的字符串分配给 Java Array 时出现 NullPointerException

java - 需要更快的阵列复制

javascript - 每个中的每个中的每个中的每个

javascript - Highcharts : endOnTick not finishing with the max extreme set for xaxis

java - 无法将 String 转换为 int,但两者都是字符串?