Вебсправочник
Справочник JavaScript

Array.concat(): объединение без изменения источников

Метод concat создаёт новый массив из исходного и переданных значений или массивов.

Назначение

Метод concat создаёт новый массив из исходного и переданных значений или массивов.

Как это работает

Обычные массивы раскрываются на один уровень, отдельные значения добавляются как элементы. Метод не является рекурсивным выравниванием и не клонирует вложенные объекты.

Пример

const first=[1,2];
const result=first.concat([2,3],4);
console.assert(JSON.stringify(result)==="[1,2,2,3,4]");
console.assert(JSON.stringify(first)==="[1,2]");

Что должно получиться

Результат содержит пять значений, включая повторяющуюся двойку. Исходный массив first не расширился, поскольку возвращён новый внешний массив.

Граница применения и частая ошибка

Не ожидайте, что concat удалит дубликаты или сделает глубокую копию. Для уникальности и изоляции вложенных данных нужны отдельные решения по смыслу задачи.

Самостоятельная проверка

Объедините два списка с одинаковым значением и убедитесь, что дубликат сохранён. Затем передайте вложенный массив и определите, какой уровень остался вложенным.

JavaScript в песочнице этого сайта не выполняется. Перенесите пример в отдельный учебный файл. Сначала проверьте исходный результат, затем измените входные данные; ошибка проверки означает, что результат отличается от ожидаемого.

Самостоятельный учебный материал. Техническая документация: первоисточник по теме ↗. Если результат отличается, проверьте код и версию браузера.