Array.prototype.concat()

Baseline Widely available

This feature is well established and works across many devices and browser versions. It’s been available across browsers since July 2015.

La méthode concat() 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

Syntaxe

js
concat()
concat(valeur0)
concat(valeur0, valeur1)
concat(valeur0, valeur1, ... , valeurN)

Paramètres

valeurNFacultatif

Des tableaux et/ou des valeurs à concaténer dans le nouveau tableau. Si aucun argument valeurN n'est passé, concat renverra une copie superficielle du tableau sur lequel elle est appelée. Voir ci-après pour plus de détails.

Valeur de retour

Une nouvelle instance de Array.

Description

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, des é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 superficielle 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 :

  • Pour les références à des objets (et non les objets eux-mêmes) : concat copie ces références dans le nouveau 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.

  • Pour les chaînes, les booléens et les nombres « primitifs » (c'est-à-dire pas les objets String, Boolean et Number) : 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'affectera 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.

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.table(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.table(nums);
// [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.table(alphanumerique);
// ['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.table(nums);
// affichera [[1], 2, [3]]

// Ici, on modifie le premier élément de num1
num1[0].push(4);

console.table(nums);
// affichera [[1, 4], 2, [3]]

Spécifications

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

Compatibilité des navigateurs

BCD tables only load in the browser

Voir aussi