字符串值为数字数组

时间:2011-02-10 16:56:04

标签: javascript

将字符串值转换为int数组的最佳方法是什么,例如:

var s = '1,1,2';

为:

var a = [1,1,2];

由于

3 个答案:

答案 0 :(得分:5)

"1,2,3".split(",").map(Number);

对于那些没有实现map的浏览器,请从此处采取类似这样的实现:https://developer.mozilla.org/en/JavaScript/Reference/Global_Objects/Array/map

Array.prototype.map位于ECMAScript5中,所以不要害怕增加Array.prototype

答案 1 :(得分:3)

JavaScript是一种动态类型语言,这意味着对于这些数组项而言,数字可能并不那么重要。如果是这种情况,您可能需要考虑使用split()

var s = '1,1,2',
    a = s.split(",");

如果重要的是他们是数字,那么你最好的选择是在事后重复:

for (var i = 0, max = a.length; i < max; i++)
    a[i] = +a[i]; 

还有ECMAScript第5版方法map,但它尚未在所有浏览器中实现。

答案 2 :(得分:1)

如果数据是安全的,您可以使用.eval()

var a = eval( '[' + s + ']');

如果您不确定安全性,可以使用JSON.parse

var a = JSON.parse( "[" + s + "]" );

...虽然您需要在不支持本机的浏览器中包含解析器。