2016-03-03 127 views
1

我有一个像['2', '10', '11']这样的字符串数组,并想知道将其转换为整数数组的最有效方法是什么。我是否应该循环遍历所有元素并将其转换为整数,或者是否有这样的函数?将字符串数组转换为整数数组

+0

'a = a.map(Number)' – georg

回答

2

使用map()parseInt()

var res = ['2', '10', '11'].map(function(v) { 
 
    return parseInt(v, 10); 
 
}); 
 

 
document.write('<pre>' + JSON.stringify(res, null, 3) + '<pre>')

更简化ES6箭头功能

var res = ['2', '10', '11'].map(v => parseInt(v, 10)); 
 

 
document.write('<pre>' + JSON.stringify(res, null, 3) + '<pre>')

或者使用Number

var res = ['2', '10', '11'].map(Number); 
 

 
document.write('<pre>' + JSON.stringify(res, null, 3) + '<pre>')


或添加 +符号将其解析字符串更简单的想法

var res = ['2', '10', '11'].map(v => +v); 
 

 
document.write('<pre>' + JSON.stringify(res, null, 3) + '<pre>')


FYI:作为@Reddy评论 - map()不会在旧的浏览器工作,要么你需要实现它( Fixing JavaScript Array functions in Internet Explorer (indexOf, forEach, etc.)),或简单地使用for循环和更新数组。

另外还有一些其他的方法是存在于它的文档请看Polyfill,感谢@RayonDabre指出。

+0

感谢您的建议重刑!唯一不好的是它需要另一个数组的值得的内存,但幸运的是我的数组并不是很大。 – MarksCode

+0

有关兼容性问题,请注意,Array.map()方法在IE8中不可用,并在 –

+0

[_Polyfill_](https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/ Array/map#Polyfill)在那里.. – Rayon

0

解析从字符串int值增加前+标志的最简单方法:

var res = ['1', '2', '3'].map(function(v){return +v}) 
0

您可以使用

var yourArray= yourArray.map(Number); 

使用jQuery,您可以使用地图的方法如下

$.map(yourArray, function(value,index) { 
    return parseInt(value); 
});