将 javascript 中的字符串拆分为数组
Split string in javascript into an array
我正在使用 eval() 函数创建一个计算器,如您所知,eval returns 一个字符串(我指的是 this tutorial),例如 20+30
。我现在想要的是拆分这个字符串,这样我就会有一个像 [20,30,50]
这样的数据数组,其中 20
和 30
是操作数, 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]
.
有什么帮助吗?
您可以创建仅将分隔符传递给拆分函数的数组。
var myArr = result.split('+');
现在您需要添加结果:
myArr.push("50");
利用地图的力量减少!
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. Code examples for the algorithm can be found here at SO and at Rosettacode。
我正在使用 eval() 函数创建一个计算器,如您所知,eval returns 一个字符串(我指的是 this tutorial),例如 20+30
。我现在想要的是拆分这个字符串,这样我就会有一个像 [20,30,50]
这样的数据数组,其中 20
和 30
是操作数, 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]
.
有什么帮助吗?
您可以创建仅将分隔符传递给拆分函数的数组。
var myArr = result.split('+');
现在您需要添加结果:
myArr.push("50");
利用地图的力量减少!
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. Code examples for the algorithm can be found here at SO and at Rosettacode。