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;i
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。