--- title: Array.prototype.concat() slug: Web/JavaScript/Reference/Global_Objects/Array/concat tags: - Array - JavaScript - Method - Prototype - Масив - метод translation_of: Web/JavaScript/Reference/Global_Objects/Array/concat ---
Метод concat()
повертає новий масив, що складається із масиву, в контексті якого метод був викликаний, поєднаного із масивом (масивами) та/або іншими значеннями, що були передані як аргументи.
{{EmbedInteractiveExample("pages/js/array-concat.html")}}
The source for this interactive example is stored in a GitHub repository. If you'd like to contribute to the interactive examples project, please clone https://github.com/mdn/interactive-examples and send us a pull request.
var new_array = old_array.concat(value1[, value2[, ...[, valueN]]])
valueN
valueN
пропущені, метод concat
повертає дрібну копію існуючого масиву, на якому був викликаний. Додаткову інформацію дивіться нижче в описі.Новий екземпляр об'єкта {{jsxref("Array")}}.
Метод concat
створює новий масив, який складається із елементів об'єкта, на якому метод був викликаний, а також із елементів кожного аргумента (якщо цей аргумент - масив) або з самого аргумента (якщо він не є масивом). Метод не заходить у аргументи вкладених масивів.
Метод concat
не змінює this
або будь-який з масивів, що передані як аргументи, але натомість повертає дрібну копію, яка містить копії тих самих елементів, об'єднані з початкових масивів. Елементи початкових масивів копіюються в новий масив таким чином:
concat
копіює посилання на об'єкти у новий масив. І початковий, і новий масиви посилаються на той самий об'єкт. Іншими словами, якщо об'єкт, на який посилаються, буде змінено, то зміни будуть видимими для нового та початкового масивів. Це стосується також тих елементів аргументів масиву, які також є масивами.concat
копіює значення рядків та чисел у новий масив.Примітка: об'єднання масиву (масивів) чи значення (значень) не змінить початкові дані. Більше того, будь-яка операція над новим масивом (тільки якщо елемент не є посиланням на об'єкт) не матиме жодного впливу на початкові масиви, і навпаки.
Наступний код об'єднує два масиви:
const letters = ['a', 'b', 'c'], const numeric = [1, 2, 3]; letters.concat(numeric); // Результат: ['a', 'b', 'c', 1, 2, 3]
Наступний код об'єднує три масиви:
var num1 = [1, 2, 3], num2 = [4, 5, 6], num3 = [7, 8, 9]; var numbers = num1.concat(num2, num3); console.log(numbers); // Результат: [1, 2, 3, 4, 5, 6, 7, 8, 9]
Наступний код об'єднує три значення у масив:
var letters = ['a', 'b', 'c']; var alphaNumeric = letters.concat(1, [2, 3]); console.log(alphaNumeric); // Результат: ['a', 'b', 'c', 1, 2, 3]
Наступний код об'єднує вкладені масиви та демонструє утримання посилань:
const num1 = [[1]]; const num2 = [2, [3]]; const numbers = num1.concat(num2); console.log(numbers); // результат: [[1], 2, [3]] // змінити перший елемент num1 num1[0].push(4); console.log(numbers); // результат: [[1, 4], 2, [3]]
Специфікація | Статус | Коментар |
---|---|---|
{{SpecName('ES3')}} | {{Spec2('ES3')}} | Початкове визначення. Реалізоване в 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')}} |
The compatibility table in this page is generated from structured data. If you'd like to contribute to the data, please check out https://github.com/mdn/browser-compat-data and send us a pull request.
{{Compat("javascript.builtins.Array.concat")}}