First a few words about apply()
in JavaScript to help understand why we use it:
The
apply()
method calls a function with a giventhis
value, and
arguments provided as an array.
Push expects a list of items to add to the array. The apply()
method, however, takes the expected arguments for the function call as an array. This allows us to easily push
the elements of one array into another array with the builtin push()
method.
Imagine you have these arrays:
var a = [1, 2, 3, 4];
var b = [5, 6, 7];
and simply do this:
Array.prototype.push.apply(a, b);
The result will be:
a = [1, 2, 3, 4, 5, 6, 7];
The same thing can be done in ES6 using the spread operator ("...
") like this:
a.push(...b); //a = [1, 2, 3, 4, 5, 6, 7];
Shorter and better but not fully supported in all browsers at the moment.
Also if you want to move everything from array b
to a
, emptying b
in the process, you can do this:
while(b.length) {
a.push(b.shift());
}
and the result will be as follows:
a = [1, 2, 3, 4, 5, 6, 7];
b = [];
No comments:
Post a Comment