将javascript中的字符串拆分为数组

时间:2015-03-25 21:16:59

标签: javascript eval

我正在使用eval()函数创建一个计算器,正如你所知eval返回一个字符串(我指的是this tutorial),例如20+30。我现在想要的是拆分这个字符串,这样我就会得到像[20,30,50]这样的数据数组,其中2030是操作数,50就是这个结果案件。

到目前为止我所做的是:

var input = document.getElementById('screen');
var result= '20+30'; // as an example
var firstOperand = result.split('+', 1); //this is taking the first operand

我真正想要的就是我提到的将字符串"20+30"的输入值转换为数组:myArr = [20,30,50]

任何帮助?

2 个答案:

答案 0 :(得分:1)

使用地图的力量并减少!

result = '1+2+3+4+5+6+7+8+9';
a = result.split('+').map(function(x){ return parseInt(x) });
b = a;
b.push(a.reduce(function(p, c) { return p+c; }));
// b = [1, 2, 3, 4, 5, 6, 7, 8, 9, 45]

顺便说一句,你不应该使用eval(),查看Shunting-yard algorithm instead。可以在SORosettacode处找到该算法的代码示例。

答案 1 :(得分:0)

你可以创建传递给split函数的数组只有分隔符。

var myArr = result.split('+');

现在你需要添加结果:

myArr.push("50");