2016-03-03 123 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); 
});