将javascript数组转换为索引对

时间:2013-12-17 19:43:25

标签: javascript arrays

我有一系列数字,如下:

[5, 29, 1, 5, 4919, 109, 17]

我想根据数组中的索引将其转换为数字对,如下所示:

[[0, 5], [1, 29], [2, 5], [3, 4919], [4, 109], [5, 17]]

我怎么能用javascript做到这一点?

3 个答案:

答案 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