【发布时间】:2011-12-25 19:09:00
【问题描述】:
我需要在数组的开头添加或添加元素。
例如,如果我的数组如下所示:
[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),看到更好的实现会很有趣。
【问题讨论】:
-
仅供参考:如果您需要在数组的开头连续插入一个元素,使用
push语句然后调用reverse会更快,而不是调用unshiftall时间。 -
@JennyO'Reilly 您应该将此作为答案发布。完美匹配我的用例。谢谢
-
性能测试:jsperf.com/adding-element-to-the-array-start 但是每个浏览器的结果都不同。
标签: javascript arrays