Array.of()

Метод Array.of() створює новий екземпляр Array з заданої кількості аргументів, незважаючи на кількість або тип аргументів.

Різниця між Array.of() та конструктором Array полягає у поводженні з цілочисельними аргументами: Array.of(7) створює масив з єдиним елементом 7, в той час як Array(7) створює порожній масив з величиною властивості length, що дорівнює 7 (Зауважте: мається на увазі масив з 7 порожніми елементами, а не елементами, що дорівнюють undefined).

Array.of(7);       // [7] 
Array.of(1, 2, 3); // [1, 2, 3]

Array(7);          // масив з 7-ми порожніх елементів
Array(1, 2, 3);    // [1, 2, 3]

Синтаксис

Array.of(element0[, element1[, ...[, elementN]]])

Параметри

elementN
Елементи, з яких треба створити масив.

Значення, яке повертається

Новий екземпляр Array.

Опис

Ця функція є частиною стандарту ECMAScript 2015. Щоб дізнатися більше, дивіться проект Array.of та Array.from та поліфіл Array.of.

Приклади

Array.of(1);         // [1]
Array.of(1, 2, 3);   // [1, 2, 3]
Array.of(undefined); // [undefined]

Поліфіл

Виконання цього коду перед будь-яким іншим кодом створить метод Array.of(), якщо він не підтримується початково.

if (!Array.of) {
  Array.of = function() {
    return Array.prototype.slice.call(arguments);
    // Або
    let vals = []
    for(let prop in arguments){
        vals.push(arguments[prop])
    }
    return vals.slice()
}

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

Специфікація Статус Коментар
ECMAScript 2015 (6th Edition, ECMA-262)
The definition of 'Array.of' in that specification.
Standard Початкове визначення.
ECMAScript Latest Draft (ECMA-262)
The definition of 'Array.of' in that specification.
Draft

Сумісність з веб-переглядачами

Update compatibility data on GitHub
DesktopMobileServer
ChromeEdgeFirefoxInternet ExplorerOperaSafariAndroid webviewChrome for AndroidFirefox for AndroidOpera for AndroidSafari on iOSSamsung InternetNode.js
ofChrome Full support 45Edge Full support 12Firefox Full support 25IE No support NoOpera Full support YesSafari Full support 9WebView Android Full support YesChrome Android Full support 39Firefox Android Full support 25Opera Android Full support YesSafari iOS Full support YesSamsung Internet Android Full support 4.0nodejs Full support 4.0.0

Legend

Full support  
Full support
No support  
No support

Див. також