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 likepush
, 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 arrayshift
/pop
- remove and return the first/last element of an arrayA simple diagram...
and chart:
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.With ES6 , use the spread operator
...
:DEMO
push()
adds a new element to the end of an array.pop()
removes an element from the end of an array.unshift()
adds a new element to the beginning of an array.shift()
removes an element from the beginning of an array.use
theArray.unshift(response)
Using push, splice, and index number we insert an element to an array at first