Comme décrit ici , un moyen rapide d'ajouter le tableau b au tableau a en javascript est a.Push.apply(a, b)
.
Vous remarquerez que l'objet a est utilisé deux fois. Vraiment, nous voulons juste la fonction Push
, et b.Push.apply(a, b)
accomplit exactement la même chose - le premier argument de apply fournit le this
pour la fonction appliquée.
J'ai pensé qu'il serait plus logique d'utiliser directement les méthodes de l'objet Array: Array.Push.apply(a, b)
. Mais ça ne marche pas!
Je suis curieux de savoir pourquoi, et s'il y a une meilleure façon d'atteindre mon objectif. (Application de la fonction Push
sans avoir à appeler deux fois un tableau spécifique.)
C'est Array.prototype.Push
, pas Array.Push
Vous pouvez également utiliser [].Push.apply(a, b)
pour une notation plus courte.
Qu'est-ce qui ne va pas chez Array.prototype.concat
?
var a = [1, 2, 3, 4, 5];
var b = [6, 7, 8, 9];
a = a.concat(b); // [1, 2, 3, 4, 5, 6, 7, 8, 9];
La version actuelle de JS vous permet de décompresser un tableau dans les arguments.
var a = [1, 2, 3, 4, 5,];
var b = [6, 7, 8, 9];
a.Push(...b); //[1, 2, 3, 4, 5, 6, 7, 8, 9];