Array.of()

Статический метод массива, создающий массив из переданных аргументов.

Время чтения: меньше 5 мин

Кратко

Скопировано

Array.of() — статический метод, который создаёт массив из переданных ему аргументов независимо от их количества.

Array.of() и конструктор массива Array() работают практически одинаково. Разница возникает, если передавать этим функциям один аргумент, причём этот аргумент должен быть числом. В этом случае для конструктора Array() аргумент будет считаться длинной массива, а для Array.of() — первым элементом массива.

Пример

Скопировано
        
          
          Array.of(2)// [2]Array(2)// [empty × 2] — массив из двух пустых элементов// Тип аргументов может быть любымArray.of('🐱', 0b001, document.createElement('div'))// ['🐱', 1, div]// Для строк всё работает одинаковоArray.of('котик')// ['котик']Array('котик')// ['котик']Array.of(10.5)// [10.5]Array(10.5)// RangeError: Invalid array length
          Array.of(2)
// [2]

Array(2)
// [empty × 2] — массив из двух пустых элементов

// Тип аргументов может быть любым
Array.of('🐱', 0b001, document.createElement('div'))
// ['🐱', 1, div]

// Для строк всё работает одинаково
Array.of('котик')
// ['котик']

Array('котик')
// ['котик']

Array.of(10.5)
// [10.5]

Array(10.5)
// RangeError: Invalid array length

        
        
          
        
      

Как пишется

Скопировано

Метод Array.of() принимает в качестве аргументов значения элементов, создаваемого массива. Если аргументы не указаны, будет создан пустой массив.

Метод Array.of() возвращает созданный массив.

Как понять

Скопировано

Статический метод Array.of() — это ещё один способ создания массива.

Array.of() может использоваться для создания массива из указанных элементов вне зависимости от их количества и типа. Длина создаваемого массива будет равна количеству аргументов.

Подсказки

Скопировано

💡 При вызове метода Array.of() в качестве this может быть передана функция-конструктор. В этом случае результатом работы метода будет объект того же типа с дополнительными полями:

        
          
          const result = Array.of.call(Boolean, 10, 20, 30)console.log(result)// [Boolean: true]// { '0': 10, '1': 20, '2': 30, length: 3 }console.log(result instanceof Boolean)// true
          const result = Array.of.call(Boolean, 10, 20, 30)

console.log(result)
// [Boolean: true]
// { '0': 10, '1': 20, '2': 30, length: 3 }

console.log(result instanceof Boolean)
// true