Array.prototype.concat()

Метод concat() возвращает новый массив, состоящий из массива, на котором он был вызван, соединённого с другими массивами и/или значениями, переданными в качестве аргументов.

Синтаксис

var new_array = old_array.concat(value1[, value2[, ...[, valueN]]])

Параметры

valueN
Массивы и/или значения, соединяемые в новый массив. Смотрите описание ниже.

Возвращаемое значение

Новый экземпляр Array.

Описание

Метод concat создаёт новый массив, состоящий из элементов в объекте, на котором он был вызван, за которыми по порядку следуют, для каждого аргумента, все его элементы (если аргумент является массивом), либо сам аргумент (если он массивом не является).

Метод concat не изменяет данный массив или любой из массивов, переданных в аргументах, а вместо этого возвращает поверхностную копию, содержащую копии тех элементов, что были объединены с исходными массивами. Элементы оригинальных массивов копируются в новый массив по следующим правилам:

  • Ссылки на объекты (но не фактические объекты): метод concat копирует ссылки на объекты в новый массив. И оригинал, и новый массив ссылаются на один и тот же объект. То есть, если объект по ссылке будет изменён, изменения будут видны и в новом, и в исходном массивах.
  • Строки, числа и булевы значения (но не объекты String, Number или Boolean): метод concat копирует значения строк и чисел в новый массив.

Примечание: Соединение массивов и/или значений в новый массив оставит соединяемые массивы/значения неизменными. Кроме того, любая операция над новым массивом (если только элемент не является ссылкой) не будет затрагивать исходные массивы и наоборот.

Примеры

Соединение двух массивов

Следующий код соединяет два массива:

var alpha = ['a', 'b', 'c'],
    numeric = [1, 2, 3];

var alphaNumeric = alpha.concat(numeric);

console.log(alphaNumeric); // Результат: ['a', 'b', 'c', 1, 2, 3]

Соединение трёх массивов

Следующий код соединяет три массива:

var num1 = [1, 2, 3],
    num2 = [4, 5, 6],
    num3 = [7, 8, 9];

var nums = num1.concat(num2, num3);

console.log(nums); // Результат: [1, 2, 3, 4, 5, 6, 7, 8, 9]

Соединение значений в массив

Следующий код соединяет три значения в массив:

var alpha = ['a', 'b', 'c'];

var alphaNumeric = alpha.concat(1, [2, 3]);

console.log(alphaNumeric); // Результат: ['a', 'b', 'c', 1, 2, 3]

Спецификации

Спецификация Статус Комментарии
ECMAScript 3rd Edition (ECMA-262) Стандарт Изначальное определение. Реализована в JavaScript 1.2.
ECMAScript 5.1 (ECMA-262)
Определение 'Array.prototype.concat' в этой спецификации.
Стандарт
ECMAScript 2015 (6th Edition, ECMA-262)
Определение 'Array.prototype.concat' в этой спецификации.
Стандарт
ECMAScript (ECMA-262)
Определение 'Array.prototype.concat' в этой спецификации.
Живой стандарт

Совместимость с браузерами

Update compatibility data on GitHub
КомпьютерыМобильныеServer
ChromeEdgeFirefoxInternet ExplorerOperaSafariAndroid webviewChrome для AndroidFirefox для AndroidOpera для AndroidSafari on iOSSamsung InternetNode.js
concatChrome Полная поддержка 1Edge Полная поддержка 12Firefox Полная поддержка 1IE Полная поддержка 5.5Opera Полная поддержка 4Safari Полная поддержка 1WebView Android Полная поддержка 1Chrome Android Полная поддержка 18Firefox Android Полная поддержка 4Opera Android Полная поддержка 10.1Safari iOS Полная поддержка 1Samsung Internet Android Полная поддержка 1.0nodejs Полная поддержка 0.1.100

Легенда

Полная поддержка  
Полная поддержка

Смотрите также

  • push / pop — добавление / удаление элементов с конца массива
  • unshift / shift — добавление / удаление элементов с начала массива
  • splice — добавление / удаление элементов в указанной позиции массива
  • String.prototype.concat()
  • Symbol.isConcatSpreadable — управление уменьшением размерности массива