我需要在数组的开头添加或预先添加元素。
例如,如果我的数组如下所示:
[23, 45, 12, 67]
AJAX调用的响应是34
,我希望更新后的数组如下所示:
[34, 23, 45, 12, 67]
目前,我计划这样做:
var newArray = [];
newArray.push(response);
for (var i = 0; i < theArray.length; i++) {
newArray.push(theArray[i]);
}
theArray = newArray;
delete newArray;
有没有更好的方法来做这件事?JavaScript有没有内置的功能可以做到这一点?
我的方法的复杂性是O(n)
,如果能看到更好的实现将会非常有趣。
发布于 2011-11-10 08:40:38
var a = [23, 45, 12, 67];
a.unshift(34);
console.log(a); // [34, 23, 45, 12, 67]
发布于 2016-02-19 18:56:57
另一种方法是通过concat
var arr = [1, 2, 3, 4, 5, 6, 7];
console.log([0].concat(arr));
concat
和unshift
之间的区别在于concat
返回一个新的数组。它们之间的性能可以在here上找到。
function fn_unshift() {
arr.unshift(0);
return arr;
}
function fn_concat_init() {
return [0].concat(arr)
}
测试结果如下:
发布于 2015-04-21 03:19:57
您有一个数组:var arr = [23, 45, 12, 67];
要将项目添加到开头,需要使用splice
var arr = [23, 45, 12, 67];
arr.splice(0, 0, 34)
console.log(arr);
https://stackoverflow.com/questions/8073673
复制相似问题