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
上一篇: 强制和强制有什么区别?