How can I add new array elements at the beginning of an array in JavaScript?

I have a need to add or prepend elements at the beginning of an array.

For example, if my array looks like below:

[23, 45, 12, 67]

And the response from my AJAX call is 34 , I want the updated array to be like the following:

[34, 23, 45, 12, 67]

Currently I am planning to do it like this:

var newArray = [];
newArray.push(response);

for (var i = 0; i < theArray.length; i++) {
    newArray.push(theArray[i]);
}

theArray = newArray;
delete newArray;

Is there any better way to do this? Does JavaScript have any built-in functionality that does this?

The complexity of my method is O(n) and it would be really interesting to see better implementations.


Use unshift . It's like push , except it adds elements to the beginning of the array instead of the end.

  • unshift / push - add an element to the beginning/end of an array
  • shift / pop - remove and return the first/last element of and array
  • A simple diagram...

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

    and chart:

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

    Check out the MDN Array documentation. Virtually every language that has the ability to push/pop elements from an array will also have the ability to unshift/shift (sometimes called push_front / pop_front ) elements, you should never have to implement these yourself.


    数组操作图像

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

    With ES6 , use the spread operator ... :

    DEMO

    var arr = [23, 45, 12, 67];
    arr = [34, ...arr]; // RESULT : [34,23, 45, 12, 67]
    
    console.log(arr)
    链接地址: http://www.djcxy.com/p/424.html

    上一篇: 强制和强制有什么区别?

    下一篇: 如何在JavaScript中的数组的开头添加新的数组元素?