2013-08-16 59 views
0

我有兩維數組,其格式爲Name,Number。我想轉換Number部分整數在JavaScript中將多維數組元素轉換爲整數

var iTicketTypeCount = []; 

var sTicketTypeCount = saResponse[5].split(','); 

while (sTicketTypeCount[0]) { 
    iTicketTypeCount.push(sTicketTypeCount.splice(0, 2)); 
} 

我iTicketTypeCount包含

[['Firefox', '45'],['IE',  '26'],['Safari', '5'],['Opera',  '6'],['Others', '7']] 

,我希望它像

[['Firefox', 45],['IE',  26],['Safari', 5],['Opera',  6],['Others', 7]] 

只有第二個元素應該被轉換成整數。

回答

5

最簡單IMO將使用Array.map()

var arr = [['Firefox', '45'],['IE', '26'],['Safari', '5'],['Opera', '6'],['Others', '7']]; 

arr = arr.map(function(x) { 
    return [x[0], Number(x[1])]; 
}); 
+0

這並不是說性能可能是一個問題這裏,但我很好奇'map'與迭代和解析的優點。每次訪問元素時調用映射函數,還是存儲結果? – metadept

+0

map()只是簡單地給你一個機會來處理數組中的每個元素。優點是,這個迭代是在本地代碼中完成的 - 與我們編寫的循環不同。 – techfoobar

1
var iTicketTypeCount = []; 

var sTicketTypeCount = saResponse[5].split(','); 

while (sTicketTypeCount[0]) { 
    sTicketTypeCount[1] = Number(sTicketTypeCount[1]); 
    iTicketTypeCount.push(sTicketTypeCount.splice(0, 2)); 
} 

你可以做到這一點,而不使用其他功能。

2

可以使用parseInt功能簡單地轉換這樣的:

$.each(arry, function(i, elem) { 
    arry[i] = [elem[0], parseInt(elem[1])]; 
}); 
1

嘗試$。每()

var arr = [['Firefox', '45'],['IE',  '26'],['Safari', '5'],['Opera',  '6'],['Others', '7']] 

$.each(arr, function(idx, value){ 
    value[1] = +value[1] 
}) 

演示:Fiddle