JavaScriptTablice

Array.of()

Tworzy nową tablicę z podanych argumentów, niezależnie od ich liczby i typu.

Zwraca
Nową tablicę z podanymi elementami.
Zmienia oryginał
Nie
Na tej stronie

Przykład

#
JavaScript
console.log(Array.of(7))
console.log(Array.of(1, 2, 3))
console.log(Array.of('HTML', 'CSS'))
console.log(Array.of())
Konsola
[7]
[1, 2, 3]
['HTML', 'CSS']
[]

Definicja i zastosowanie

#

Metoda statyczna Array.of() tworzy tablicę, której elementami są dokładnie przekazane argumenty. Array.of(7) daje tablicę z jednym elementem 7, a Array.of(1, 2, 3) tablicę trzech liczb.

Powstała, żeby ominąć dziwne zachowanie konstruktora Array. Wywołanie new Array(3) z jedną liczbą nie tworzy tablicy [3], tylko pustą tablicę o długości 3, a new Array(2.5) rzuca błąd. Array.of() zawsze traktuje argumenty jak elementy.

Na co dzień tablice tworzy się literałem [1, 2, 3], który jest krótszy i czytelniejszy. Array.of() przydaje się tam, gdzie potrzebujesz funkcji budującej tablicę z argumentów, oraz w klasach dziedziczących po Array, bo zwraca instancję tej klasy.

Składnia

#
Składnia
Array.of(element1, element2, …)

Parametry

#
  • element1…elementN

    dowolne wartości

    Wartości, które staną się elementami tablicy. Bez argumentów powstanie pusta tablica.

Więcej przykładów

#
Array.of() a konstruktor Array
JavaScript
console.log(new Array(3).length)
console.log(Array.of(3).length)
console.log(new Array(3, 4))

try {
  new Array(2.5)
} catch (error) {
  console.log(error.name)
}
Konsola
3
1
[3, 4]
RangeError

Konstruktor Array z jedną liczbą traktuje ją jak długość, a z kilkoma argumentami jak elementy. Array.of() nie ma tej niekonsekwencji.

Pułapka: Array.of jako callback
JavaScript
const tags = ['html', 'css']

console.log(tags.map((tag) => Array.of(tag)))
console.log(tags.map(Array.of))
Konsola
[['html'], ['css']]
[['html', 0, ['html', 'css']], ['css', 1, ['html', 'css']]]

map() przekazuje do funkcji także indeks i całą tablicę, a Array.of zamienia każdy argument w element. Opakuj wywołanie w funkcję strzałkową, żeby przekazać tylko jeden argument.

Obsługa przeglądarek

#

Szeroko dostępne

Działa we wszystkich nowoczesnych przeglądarkach, także na telefonach. Możesz używać bez obaw.

  • Chrome
  • Edge
  • Firefox
  • Safari

Dobre praktyki

#
  • Do zwykłego tworzenia tablic używaj literału []. Po Array.of() sięgaj, gdy potrzebujesz tego jako funkcji.
  • Nie twórz tablicy przez new Array(n), jeśli chcesz tablicę z liczbą n. Powstanie pusta tablica o długości n.
  • Do tablicy o znanej długości wypełnionej wartościami lepsze jest Array.from({ length: n }, fn).

Powiązane hasła

#

Widzisz błąd albo brakuje przykładu? Napisz do nas.