JavaScript метод Array.of()
Определение и применение
JavaScript метод Array.of() создаёт новый массив из переданных аргументов. Каждый аргумент становится
отдельным элементом независимо от типа; количество элементов равно количеству аргументов. Работу метода показывает
пример
«Почему Array.of(3) создаёт один элемент».
Поддержка браузерами
Спецификация: ecma262
Поддерживается во всех основных браузерах с 2016 года.
| Возможность | Компьютеры | Мобильные | ||||||||||
|---|---|---|---|---|---|---|---|---|---|---|---|---|
of | 45 | 12 | 25 | 26 | 9 | 39 | 25 | 26 | 9 | 4.0 | 39 | 9 |
поддерживаетсяс ограниченияминет поддержкинет данных≤31 — не позднее версии 31
JavaScript синтаксис
Array.of();
Array.of(element1);
Array.of(element1, element2);Спецификация
Значения параметров
| Параметр | Описание |
|---|---|
element1, element2, … |
Элемент, или элементы из которых будет создан массив. |
Полифилл
Следующий упрощённый вариант воспроизводит создание обычного массива методом Array.of(), для старых
браузеров. Это не полный полифилл: он не сохраняет поведение вызова с другим конструктором через call() и
атрибуты встроенного свойства:
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
<p>Результат выполнения выводится в консоль.</p>
main.js
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())