--- title: Array.prototype.concat() slug: Web/JavaScript/Reference/Objets_globaux/Array/concat tags: - Array - JavaScript - Méthode - Prototype - Reference translation_of: Web/JavaScript/Reference/Global_Objects/Array/concat ---
La méthode concat()
est utilisée afin de fusionner un ou plusieurs tableaux en les concaténant. Cette méthode ne modifie pas les tableaux existants, elle renvoie un nouveau tableau qui est le résultat de l'opération.
Le code source de cet exemple interactif est disponible dans un dépôt GitHub. Si vous souhaitez contribuez à ces exemples, n'hésitez pas à cloner https://github.com/mdn/interactive-examples et à envoyer une pull request !
let nouveau_tableau = ancien_tableau.concat(valeur1[, valeur2[, ...[, valeurN]]])
valeurN
{{optional_inline}}valeurN
valent undefined
, concat
renverra une copie superficielle du tableau sur lequel elle est appelée. Voir ci-après pour plus de détails.Une nouvelle instance de {{jsxref("Array")}}.
La méthode concat
permet de créer un nouveau tableau constitué des éléments de l'objet this
sur lequel elle a été appelée, suivis dans l'ordre par, pour chaque paramètre, les éléments de ce paramètre (s'il s'agit d'un tableau) ou le paramètre lui-même (s'il ne s'agit pas d'un tableau). La concaténation ne « déplie » pas les tableaux imbriqués.
La méthode concat
ne modifie pas this
ni aucun des tableaux passés en paramètres, mais renvoie une copie qui contient des copies des mêmes éléments combinées que ceux des tableaux originaux. Les éléments des tableaux originaux sont copiés dans le nouveau tableau comme suit :
concat
copie ces références dans le nouveaux tableau. Le tableau original et le nouveau tableau feront référence au même objet. C'est-à-dire que si un objet référencé est modifié, ces changements seront visibles tant dans le nouveau que dans les tableaux originaux.concat
copie les valeurs des chaînes et des nombres dans le nouveau tableau. (voir Les types de données en JavaScript).Note : La concaténation n'impactera pas les tableaux originaux. Par la suite, toute opération sur le nouveau tableau n'aura aucun effet sur les tableaux d'origine, et vice versa.
Le code qui suit concatène deux tableaux :
let alpha = ["a", "b", "c"]; let numerique = [1, 2, 3]; alpha.concat(numerique); // donne : ["a", "b", "c", 1, 2, 3]
Le code qui suit concatène trois tableaux :
let num1 = [1, 2, 3]; let num2 = [4, 5, 6]; let num3 = [7, 8, 9]; let nums = num1.concat(num2, num3); console.log(nums); // [1, 2, 3, 4, 5, 6, 7, 8, 9]
Le code qui suit ajoute trois valeurs à un tableau :
let alpha = ['a', 'b', 'c']; let alphanumerique = alpha.concat(1, [2, 3]); console.log(alphanumerique); // ['a', 'b', 'c', 1, 2, 3]
Dans le code qui suit, on concatène deux tableaux qui ont plusieurs dimensions et on illustre la conservation des références :
let num1 = [[1]]; let num2 = [2, [3]]; let nums = num1.concat(num2); console.log(nums); // affichera [[1], 2, [3]] // Ici, on modifie le premier élément de num1 num1[0].push(4); console.log(nums); // affichera [[1, 4], 2, [3]]
Spécification | État | Commentaires |
---|---|---|
{{SpecName('ES3')}} | {{Spec2('ES3')}} | Définition initiale. Implémentée avec JavaScript 1.2. |
{{SpecName('ES5.1', '#sec-15.4.4.4', 'Array.prototype.concat')}} | {{Spec2('ES5.1')}} | |
{{SpecName('ES6', '#sec-array.prototype.concat', 'Array.prototype.concat')}} | {{Spec2('ES6')}} | |
{{SpecName('ESDraft', '#sec-array.prototype.concat', 'Array.prototype.concat')}} | {{Spec2('ESDraft')}} |
{{Compat("javascript.builtins.Array.concat")}}