构建数组以显示索引号

时间:2014-02-01 23:17:44

标签: javascript arrays

我有一个看起来像这样的数组:

var myArray = [12, 24, 36, 48, 60, 15, 30];

我需要从中构建一个新的数组数组,以显示新数组中原始数组的索引号。最终结果应如下所示:

var myNewArray = [
    [1, 12],
    [2, 24],
    [3, 36],
    [4, 48],
    [5, 60], 
    [6, 15],
    [7, 30]
];

3 个答案:

答案 0 :(得分:4)

你可以使用 Array.prototype.map(),然后根据该数组的值和索引生成新数组。

Demo

var myArray = [12, 24, 36, 48, 60, 15, 30],
    newArray = myArray.map(function (value, index) {
        return [index + 1, value];
    });

仅供参考: - JavaScript数组是零索引的:数组的第一个元素是索引0

答案 1 :(得分:2)

var myArray= [12, 24, 36, 48, 60, 15, 30], 
myArrayIndexed= myArray.map(function(itm, i){
    return [i+1, itm];
});
myArrayIndexed.join(']\n[');


/* returned value: */ [
    [1, 12],
    [2, 24],
    [3, 36],
    [4, 48],
    [5, 60],
    [6, 15],
    [7, 30]
]

答案 2 :(得分:1)

就这么简单:

var myArray = [12, 24, 36, 48, 60, 15, 30];
var myNewArray = [];
for (var i = 0; i < myArray.length; i++) {
    myNewArray.push([i+1,myArray[i]]);//or just i depending on the index you need
}

更快的方法是缓存数组的长度:

for (var i = 0, var l = myArray.length; i < l; i++) {}

到目前为止我的知识和研究 - Javascript的本地for循环比数组映射更快,用于迭代数组。 Here是一个有趣的基准。

希望这有帮助!