我有一系列数字,如下:
[5, 29, 1, 5, 4919, 109, 17]
我想根据数组中的索引将其转换为数字对,如下所示:
[[0, 5], [1, 29], [2, 5], [3, 4919], [4, 109], [5, 17]]
我怎么能用javascript做到这一点?
答案 0 :(得分:5)
[5, 29, 1, 5, 4919, 109, 17].map(function(x,i){return [i,x];})
答案 1 :(得分:3)
另一个答案建议使用map
,这是一个很好的解决方案,也许我会在我自己的代码中使用,但是地图是在ECMAScript 5中引入的,所以它可能不适用于旧浏览器(没有{{3 }})。
如果你需要更普遍的东西,一个非常简单的方法就是这样:
var input = [5, 29, 1, 5, 4919, 109, 17];
var output = [];
for (var i = 0; i < input.length; i++)
output.push([i, input[i]]);
或者这个:
var input = [5, 29, 1, 5, 4919, 109, 17];
var output = Array(input.length);
for (var i in input)
output[i] = [i, input[i]];
答案 2 :(得分:1)
这是一个为旧浏览器添加缺少方法的库:http://augmentjs.com/ ~5.501 kb