如何在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 / pop元素的语言都具有不移位/移位(有时称为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)
    链接地址: http://www.djcxy.com/p/423.html

    上一篇: How can I add new array elements at the beginning of an array in JavaScript?

    下一篇: Sort array of objects by string property value in JavaScript