JavaScript метод Array.of()

Определение и применение

JavaScript метод Array.of() создаёт новый массив из переданных аргументов. Каждый аргумент становится отдельным элементом независимо от типа; количество элементов равно количеству аргументов. Работу метода показывает пример «Почему Array.of(3) создаёт один элемент».

Поддержка браузерами

Спецификация: ecma262

Поддерживается во всех основных браузерах с 2016 года.

Показать браузеры
Совместимостьjavascript.builtins.Array.of
ВозможностьКомпьютерыМобильные
ChromeEdgeFirefoxOperaSafariChrome AndroidFirefox for AndroidOpera AndroidSafari on iOSSamsung BrowserWebView AndroidWebView on iOS
of✓45✓12✓25✓26✓9✓39✓25✓26✓9✓4.0✓39✓9

поддерживаетсяс ограниченияминет поддержкинет данных≤31 — не позднее версии 31

JavaScript синтаксис

JavaScript
Array.of();
Array.of(element1);
Array.of(element1, element2);

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

ECMAScript: Array.of.

Значения параметров

Параметры Array.of()
Параметр Описание
element1, element2, … Элемент, или элементы из которых будет создан массив.

Полифилл

Следующий упрощённый вариант воспроизводит создание обычного массива методом Array.of(), для старых браузеров. Это не полный полифилл: он не сохраняет поведение вызова с другим конструктором через call() и атрибуты встроенного свойства:

JavaScript
if ( !Array.of ) { // если метод отсутствует
  Array.of = function() { // задаем методу следующую функцию
    return Array.prototype.slice.call( arguments );  // реализуем функционал с помощью метода slice и функции call, которая принимает аргументы
  };
}

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

Новый массив из переданных аргументов; без аргументов — пустой массив.

Особенности

Array.of(3) создаёт один элемент со значением 3; Array(3) создаёт длину 3 с пустыми позициями. Статический метод вызывается у Array.

Примеры, попробуйте сами

Почему Array.of(3) создаёт один элемент

Измените число 3 и сравните длину массива, наличие индекса 0 и значение элемента.

index.html
HTML
<p>Результат выполнения выводится в консоль.</p>
main.js
JavaScript
const oneValue = Array.of(3)
const emptySlots = Array(3)
console.log('Значения:', oneValue)
console.log('Длина:', oneValue.length, emptySlots.length)
console.log('Есть индекс 0:', 0 in oneValue, 0 in emptySlots)
console.log('Несколько аргументов:', Array.of(9, 8, 7))
console.log('Без аргументов:', Array.of())