Spec-Zone.ru › JavaScript

Array.prototype.join()

Базовая поддержка Широко доступна

Эта функция хорошо зарекомендовала себя и работает на многих устройствах и в различных версиях браузеров. Она доступна во всех браузерах с июля 2015 года.

Метод join() экземпляров Array возвращает новую строку, которая представляет собой конкатенацию всех элементов этого массива, разделенных запятыми или указанной строкой-разделителем. Если массив содержит только один элемент, возвращается строковое представление этого элемента без использования разделителя.

Попробуйте

const elements = ["Fire", "Air", "Water"];

console.log(elements.join());
// Expected output: "Fire,Air,Water"

console.log(elements.join(""));
// Expected output: "FireAirWater"

console.log(elements.join("-"));
// Expected output: "Fire-Air-Water"

Синтаксис

join()
join(separator)

Параметры

separator Необязательный
Строка, которая будет использоваться для разделения каждой пары смежных элементов массива. Если этот параметр опущен, элементы массива разделяются запятой (",").

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

Строка, состоящая из всех объединенных элементов массива. Если array.length равно 0, возвращается пустая строка.

Описание

Строковые представления всех элементов массива объединяются в одну строку. Если элемент является undefined или null, он преобразуется в пустую строку вместо строки "null" или "undefined".

Метод join вызывается внутренне методом Array.prototype.toString() без аргументов. Переопределение 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 = ["Wind", "Water", "Fire"];
a.join(); // 'Wind,Water,Fire'
a.join(", "); // 'Wind, Water, Fire'
a.join(" + "); // 'Wind + Water + Fire'
a.join(""); // 'WindWaterFire'

Использование join() на разреженных массивах

join() обрабатывает пустые слоты так же, как undefined, и добавляет лишний разделитель:

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

Вызов join() на не-массивных объектах

Метод join() считывает свойство length объекта this, а затем обращается к каждому свойству, ключ которого является неотрицательным целым числом, меньшим length.

const arrayLike = {
  length: 3,
  0: 2,
  1: 3,
  2: 4,
  3: 5, // ignored by join() since length is 3
};
console.log(Array.prototype.join.call(arrayLike));
// 2,3,4
console.log(Array.prototype.join.call(arrayLike, "."));
// 2.3.4

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

Спецификация
Спецификация языка ECMAScript® 2027
# sec-array.prototype.join

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

Настольные компьютеры Мобильные устройства Сервер
Chrome Edge Firefox Opera Safari Chrome Android Firefox for Android Opera Android Safari on iOS Samsung Internet WebView Android WebView on iOS Bun Deno Node.js
join
1
12
1
4
1
18
4
10.1
1
1.0
1
1
1.0.0
1.0
0.10.0

См. также

  • Polyfill Array.prototype.join в core-js
  • Полифилл Array.prototype.join из es-shims
  • Руководство по индексированным коллекциям
  • Array
  • Array.prototype.toString()
  • TypedArray.prototype.join()
  • String.prototype.split()

© 2005–2025 MDN contributors.
Licensed under the Creative Commons Attribution-ShareAlike License v2.5 or later.
https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Array/join

Spec-Zone.ru

Настройки Оффлайн Что нового Помощь О нас
Spec-Zone .ru
спецификации, руководства, описания, API