gpt4 book ai didi

javascript - 如何使用两个单独的数组执行操作,一个包含值,另一个包含操作数

转载 作者:行者123 更新时间:2023-11-30 07:12:07 24 4
gpt4 key购买 nike

var num = [12, 13, 15, 22];

var oper = ["+", "-", "*"];

我怎样才能做一个循环,我可以做下面的操作

12 + 13 - 15 * 22

我试过这样做:

for(var t = 0; t < num.length - 1; t++) {
retVal += num[t] oper[t] num[t+1]
}

但这对我来说并没有真正起作用

我怎样才能实现我想要做的事情。

附言这里不需要操作数优先级。

最佳答案

您可以将数组与分隔符数组连接起来,然后对表达式求值。这尊重运算符的优先级。

const
join = ([a, b, ...array], [s, ...separators]) => array.length
? join([a + s + b, ...array], separators)
: a + s + b;

var num = [12, 13, 15, 22],
oper = ["+", "-", "*"],
term = join(num, oper);

console.log(term);
console.log(eval(term));

如果您不需要运算符优先级,您可以使用带有运算符的对象并减少数组。

var num = [12, 13, 15, 22],
oper = ["+", "-", "*"],
op = { '+': (a, b) => a + b, '-': (a, b) => a - b, '*': (a, b) => a * b },
opValues = oper.values(),
result = num.reduce((a, b) => op[opValues.next().value](a, b));

console.log(result);

关于javascript - 如何使用两个单独的数组执行操作,一个包含值,另一个包含操作数,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/57208746/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com