Quel est le moyen le plus efficace de concaténer N tableaux d'objets en JavaScript
?
Les tableaux sont modifiables et le résultat peut être stocké dans l'un des tableaux d'entrée.
Quel est le moyen le plus efficace de concaténer N tableaux d'objets en JavaScript
?
Les tableaux sont modifiables et le résultat peut être stocké dans l'un des tableaux d'entrée.
Si vous êtes à la concaténation de plus de deux matrices, concat()
est le chemin à parcourir pour plus de commodité et de performance.
var a = [1, 2], b = ["x", "y"], c = [true, false];
var d = a.concat(b, c);
console.log(d); // [1, 2, "x", "y", true, false];
Pour la concaténation de seulement deux tableaux, à l'aide de push.apply()
peut être utilisé à la place pour le cas de l'ajout d'éléments d'un tableau à la fin de l'autre, sans la production d'un nouveau tableau. Avec slice()
il peut également être utilisé à la place de concat()
, mais il semble y avoir aucun avantage en termes de performance de le faire.
var a = [1, 2], b = ["x", "y"];
a.push.apply(a, b);
console.log(a); // [1, 2, "x", "y"];
[].concat.apply([], [array1, array2, ...])
edit : preuve d'efficacité: http://jsperf.com/multi-array-concat/7
Vous pouvez utiliser le site jsperf.com pour comparer les performances. Voici le lien pour concat .
Ajout de la comparaison entre:
var c = a.concat(b);
et:
var c = [];
for (i = 0; i < a.length; i++) {
c.push(a[i]);
}
for (j = 0; j < b.length; j++) {
c.push(b[j]);
}
La seconde est presque 10 fois plus lente en chrome.
Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.