2013-08-16 58 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