有了javascript,你在數組中的鍵沒有太大的靈活性。 您可能正在尋找array.splice函數,該函數允許您在指定索引處插入項目。
一個例子:
var arr = [];
arr[1] = 400;
arr[3] = 660;
arr[5] = 594;
arr.splice(3, 0, 800);
// arr is now = [undefined × 1, 400, undefined × 1, 800, 660, undefined × 1, 594]
正如你可以看到陣列現在包含在未指定的索引未定義的值(0,2和5)。
如果您想要更好地控制索引,您必須反駁到使用對象。
使用對象,您可以反向循環數組並在當時增加一個項目的索引(先前覆蓋下一個項目)或基於舊的創建新對象。
下面是使用後一種方法的例子:
var obj = {1:400, 3:660, 5:593};
var push_index = function(index, value) {
var push_i = index;
var new_obj = {};
for (var i in obj) {
if (i == push_i) {
push_i++;
new_obj[push_i] = obj[i];
} else {
new_obj[i] = obj[i];
}
}
new_obj[index] = value;
return new_obj;
};
obj = push_index(3, 800);
請注意,如果對象是已經排序這僅適用。
http://stackoverflow.com/questions/586182/javascript-insert-item-into-array-at-a-specific-index可能的重複 – forsvunnet