将字符串值转换为int数组的最佳方法是什么,例如:
var s = '1,1,2';
为:
var a = [1,1,2];
由于
答案 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 + "]" );
...虽然您需要在不支持本机的浏览器中包含解析器。