javascript将数组连接到另一个数组

javascript将数组连接到另一个数组,javascript,Javascript,我想编写一个函数,将数组连接到另一个不同的方式: var myNumbers = [10,20,3,4,2] var myOperations = ['+','-','*','/'] 我希望运算符位于myNumbers元素之间: 10+20-3*4/2=54 谢谢只需将var str=0更改为str= var myNumbers=[10,20,3,4,2] 变量myOperations=['+','-','*','/']; var-str=; forvar i=0;i

我想编写一个函数,将数组连接到另一个不同的方式:

var myNumbers = [10,20,3,4,2]
var myOperations = ['+','-','*','/']
我希望运算符位于myNumbers元素之间: 10+20-3*4/2=54


谢谢

只需将var str=0更改为str= var myNumbers=[10,20,3,4,2] 变量myOperations=['+','-','*','/']; var-str=; forvar i=0;iconsole.logstr 其他成员已经提出了一些重复的问题,他们本可以帮助您。请在下面找到我为您的问题制定的解决方案

var numbersAndOperations = myNumbers.map((a, i) => myOperations[i] ? [a, myOperations[i]] : [a])
/* this makes a 2 levels deep array from your 2 and avoids any undefined values through a ternary operator.
If you don't know ternary operators they are a shorthand for an if condition.
[[10, "+"], [20, "-"], [3, "*"], [4, "/"], [2]] */

const myMathString = numbersAndOperations.flat(2).join(',').replace(/,/g, '')
// this turns it into a string and remove the comas: "10+20-3*4/2"

function mathEval(mathString) { // this hack evaluates your math function and immediately returns a result.
  return new Function('return ' + mathString)();
}

console.log(mathEval(myMathString)); // 24. The result is actually 24 because * and / are evaluated before the + and -

希望它有帮助:

您已经尝试了什么?欢迎使用Stack Overflow!请阅读,然后。用户应在问题中展示他们的尝试或研究,以确保更好的接收效果。此外,10+20-3*4/2是24010+20-3*4/2?即010,10之前的0将不在计算中考虑@编码红点。但在句法上是可以避免的。是的,我可以@CodeRed@PushprajsinhChudasama这在一定程度上取决于计算的方式。评估'010'将返回8。