Array.prototype.join()

Метод join() (об'єднати) примірників Array створює та повертає новий рядок шляхом об'єднання всіх елементів свого масиву, розділених комами або вказаним роздільником. Якщо масив містить лише один елемент, то цей елемент буде повернено без використання роздільника.

Спробуйте його в дії

Синтаксис

join()
join(separator)

Параметри

separator (роздільник) Необов'язкове

Рядок, що розділятиме в рядку кожну пару сусідніх елементів масиву. Якщо пропустити цей параметр, то елементи масиву розділяються комами (",").

Повернене значення

Рядок із всіма об'єднаними елементами масиву. Якщо arr.length дорівнює 0, то повертається порожній рядок.

Опис

Рядкові перетворення всіх елементів масиву об'єднуються в один рядок. Якщо елемент – undefined або null, то він перетворюється на порожній рядок, а не рядок "null" чи "undefined".

Метод Array.prototype.toString() викликає без аргументів метод join. Перевизначення join екземпляра масиву також перевизначить його поведінку toString.

Array.prototype.join рекурсивно перетворює кожний елемент, включно з іншими масивами, на рядок. У зв'язку з тим, що рядок, повернений Array.prototype.toString (що те саме, що викликати join()), не має обмежників, вкладені масиви мають такий вигляд, ніби були сплющені. Можна контролювати лише розділювач на першому рівні, а глибші рівні завжди матимуть усталені коми.

const matrix = [
  [1, 2, 3],
  [4, 5, 6],
  [7, 8, 9],
];

console.log(matrix.join()); // 1,2,3,4,5,6,7,8,9
console.log(matrix.join(";")); // 1,2,3;4,5,6;7,8,9

Коли масив є циклічним (містить елемент, що є самим цим масивом), то браузери уникають нескінченної рекурсії, ігноруючи циклічне посилання.

const arr = [];
arr.push(1, [3, arr, 4], 2);
console.log(arr.join(";")); // 1;3,,4;2

Бувши використаним на розріджених масивах, метод join() ітерує порожні комірки так, ніби вони містять значення undefined.

Метод join() є узагальненим. Він лишень очікує, що значення this матиме властивість length, а також властивості з цілочисловими ключами.

Приклади

Об'єднання масиву чотирма різними способами

У наступному прикладі створюється масив a, що містить три елементи; потім масив об'єднується чотири рази: використовуючи усталений роздільник, тоді – кому і пробіл, далі – плюс і порожній рядок.

const a = ["Вітер", "Вода", "Вогонь"];
a.join(); // 'Вітер,Вода,Вогонь'
a.join(", "); // 'Вітер, Вода, Вогонь'
a.join(" + "); // 'Вітер + Вода + Вогонь'
a.join(""); // 'ВітерВодаВогонь'

Використання join() на розріджених масивах

join() обробляє порожні комірки так само як undefined, і додає додатковий роздільник:

console.log([1, , 3].join()); // '1,,3'
console.log([1, undefined, 3].join()); // '1,,3'

Виклик join() на об'єктах-немасивах

Метод join() зчитує з this властивість length, а потім звертається до кожної властивості, чий ключ є невід'ємним цілим числом, меншим за length.

const arrayLike = {
  length: 3,
  0: 2,
  1: 3,
  2: 4,
  3: 5, // ігнорується join(), оскільки length – 3
};
console.log(Array.prototype.join.call(arrayLike));
// 2,3,4
console.log(Array.prototype.join.call(arrayLike, "."));
// 2.3.4

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

Сумісність із браузерами

desktop mobile server
Chrome Edge Firefox Internet Explorer Opera Safari WebView Android Chrome Android Firefox for Android Opera Android Safari on iOS Samsung Internet Deno Node.js
join
Chrome Full support 1
Edge Full support 12
Firefox Full support 1
Internet Explorer Full support 5.5
Opera Full support 4
Safari Full support 1
WebView Android Full support 1
Chrome Android Full support 18
Firefox for Android Full support 4
Opera Android Full support 10.1
Safari on iOS Full support 1
Samsung Internet Full support 1.0
Deno Full support 1.0
Node.js Full support 0.10.0

Дивіться також