我有一个看起来像这样的数组:
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]
];
答案 0 :(得分:4)
你可以使用 Array.prototype.map(),然后根据该数组的值和索引生成新数组。
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是一个有趣的基准。
希望这有帮助!