协慌网

登录 贡献 社区

如何在 Javascript 中的数组开头添加新的数组元素?

我需要在数组的开头添加或添加元素。

例如,如果我的数组如下所示:

[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) ,看到更好的实现会非常有趣。

答案

使用unshift 。它就像push一样,除了它将元素添加到数组的开头而不是结尾。

  • unshift / push - 在数组的开头 / 结尾添加一个元素
  • shift / pop - 删除并返回数组的第一个 / 最后一个元素

一个简单的图表......

unshift -> array <- push
   shift   <- array -> pop

和图表:

add  remove  start  end
   push    X                   X
    pop           X            X
unshift    X             X
  shift           X      X

查看MDN 阵列文档 。实际上,每个能够从数组中推送 / 弹出元素的语言都具有取消移位 / 移位(有时称为push_front / pop_front )元素的能力,您永远不必自己实现这些元素。

阵列操作图像

var a = [23, 45, 12, 67];
a.unshift(34);
console.log(a); // [34, 23, 45, 12, 67]

使用 ES6,使用扩展运算符...

DEMO

var arr = [23, 45, 12, 67];
arr = [34, ...arr]; // RESULT : [34,23, 45, 12, 67]

console.log(arr)