Movatterモバイル変換


[0]ホーム

URL:


  1. Web
  2. JavaScript
  3. Référence
  4. Objets natifs standards
  5. Array
  6. concat()

Cette page a été traduite à partir de l'anglais par la communauté.Vous pouvez contribuer en rejoignant la communauté francophone sur MDN Web Docs.

View in EnglishAlways switch to English

Array : méthode concat()

Baseline Widely available

Cette fonctionnalité est bien établie et fonctionne sur de nombreux appareils et versions de navigateurs. Elle est disponible sur tous les navigateurs depuis ⁨juillet 2015⁩.

La méthodeconcat() est utilisée afin de fusionner deux 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.

Exemple interactif

const array1 = ["a", "b", "c"];const array2 = ["d", "e", "f"];const array3 = array1.concat(array2);console.log(array3);// Résultat attendu : Array ["a", "b", "c", "d", "e", "f"]

Syntaxe

js
concat()concat(value1)concat(value1, value2)concat(value1, value2, /* …, */ valueN)

Paramètres

value1, …,valueNFacultatif

Tableaux et/ou valeurs à concaténer dans le nouveau tableau. Si tous les paramètresvalueN sont omis,concat retourne unecopie superficielle du tableau existant sur lequel elle est appelée. Voir la description ci-dessous pour plus de détails.

Valeur de retour

Une nouvelle instance deArray.

Description

La méthodeconcat crée un nouveau tableau. Ce tableau sera d'abord rempli par les éléments de l'objet sur lequel elle est appelée. Ensuite, pour chaque argument, sa valeur sera concaténée dans le tableau : pour les objets normaux ou les valeurs primitives, l'argument lui-même deviendra un élément du tableau final ; pour les tableaux ou objets assimilés à des tableaux ayant la propriétéSymbol.isConcatSpreadable définie à une valeur vraie, chaque élément de l'argument sera ajouté indépendamment au tableau final. La méthodeconcat ne parcourt pas récursivement les tableaux imbriqués passés en argument.

La méthodeconcat() est uneméthode de copie. Elle ne modifie nithis ni aucun des tableaux fournis en argument, mais retourne unecopie superficielle qui contient les mêmes éléments que ceux des tableaux originaux.

La méthodeconcat() préserve les trous si l'un des tableaux sources estcreux.

La méthodeconcat() estgénérique. La valeur dethis est traitée de la même manière que les autres arguments (à ceci près qu'elle sera d'abord convertie en objet), ce qui signifie que les objets simples seront directement placés en tête du tableau résultant, tandis que les objets de type tableau avec un[Symbol.isConcatSpreadable] vrai seront dépliés dans le tableau résultant.

Exemples

Concaténer deux tableaux

Le code qui suit concatène deux tableaux :

js
const lettres = ["a", "b", "c"];const chiffres = [1, 2, 3];const alphanum = lettres.concat(chiffres);console.log(alphanum);// donne : ["a", "b", "c", 1, 2, 3]

Concaténer trois tableaux

Le code qui suit concatène trois tableaux :

js
const num1 = [1, 2, 3];const num2 = [4, 5, 6];const num3 = [7, 8, 9];const nums = num1.concat(num2, num3);console.log(nums);// donne : [1, 2, 3, 4, 5, 6, 7, 8, 9]

Concaténer des valeurs avec un tableau

Le code qui suit ajoute trois valeurs à un tableau :

js
const alpha = ["a", "b", "c"];const alphanumerique = alpha.concat(1, [2, 3]);console.log(alphanumerique);// donne : ['a', 'b', 'c', 1, 2, 3]

Concaténer des tableaux imbriqués

Dans le code qui suit, on concatène deux tableaux qui ont plusieurs dimensions et on illustre la conservation des références :

js
const num1 = [[1]];const num2 = [2, [3]];const nums = num1.concat(num2);console.log(nums);// donne : [[1], 2, [3]]// Ici, on modifie le premier élément de num1num1[0].push(4);console.log(nums);// donne : [[1, 4], 2, [3]]

Concaténer des objets de type tableau avecSymbol.isConcatSpreadable

concat ne traite pas tous les objets de type tableau comme des tableaux par défaut — uniquement siSymbol.isConcatSpreadable est défini à une valeur vraie (par exemple,true).

js
const obj1 = { 0: 1, 1: 2, 2: 3, length: 3 };const obj2 = { 0: 1, 1: 2, 2: 3, length: 3, [Symbol.isConcatSpreadable]: true };console.log([0].concat(obj1, obj2));// [ 0, { '0': 1, '1': 2, '2': 3, length: 3 }, 1, 2, 3 ]

Utiliserconcat() sur des tableaux creux

Si l'un des tableaux sources est creux, le tableau résultant le sera aussi :

js
console.log([1, , 3].concat([4, 5])); // [1, vide, 3, 4, 5]console.log([1, 2].concat([3, , 5])); // [1, 2, 3, vide, 5]

Appelerconcat() sur des objets qui ne sont pas des tableaux

Si la valeur dethis n'est pas un tableau, elle est convertie en objet puis traitée de la même manière que les arguments deconcat(). Dans ce cas, la valeur de retour est toujours un nouveau tableau simple.

js
console.log(Array.prototype.concat.call({}, 1, 2, 3)); // [{}, 1, 2, 3]console.log(Array.prototype.concat.call(1, 2, 3)); // [ [Number: 1], 2, 3 ]const objetSimilaireTableau = {  [Symbol.isConcatSpreadable]: true,  length: 2,  0: 1,  1: 2,  2: 99, // ignoré par concat() car length vaut 2};console.log(Array.prototype.concat.call(objetSimilaireTableau, 3, 4)); // [1, 2, 3, 4]

Spécifications

Specification
ECMAScript® 2026 Language Specification
# sec-array.prototype.concat

Compatibilité des navigateurs

Voir aussi

Help improve MDN

Learn how to contribute

Cette page a été modifiée le par lescontributeurs du MDN.


[8]ページ先頭

©2009-2025 Movatter.jp