Sobes.tech
Junior

Jak można sprawdzić, czy to pole jest tablicą?

sobes.tech AI

Odpowiedź od AI

Istnieje kilka sposobów sprawdzenia, czy dane pole jest tablicą:

  1. Array.isArray(): Najbardziej preferowany i nowoczesny sposób.

    // Sprawdza, czy wartość jest tablicą.
    // Zwraca true lub false.
    Array.isArray([]); // true
    Array.isArray({}); // false
    Array.isArray(null); // false
    Array.isArray(undefined); // false
    Array.isArray(123); // false
    Array.isArray('łańcuch'); // false
    
  2. instanceof Array: Działa dla tablic utworzonych w bieżącej ramce.

    // Sprawdza, czy obiekt jest instancją klasy Array.
    // Może dawać niepoprawne wyniki przy pracy z iframe.
    [] instanceof Array; // true
    new Array() instanceof Array; // true
    ({}); // false
    
  3. Object.prototype.toString.call(): Niezawodny sposób, obejmujący problemy z instanceof w różnych ramkach.

    // Zwraca tekstową reprezentację typu obiektu.
    // Dla tablic zwraca "[object Array]".
    Object.prototype.toString.call([]); // "[object Array]"
    Object.prototype.toString.call({}); // "[object Object]"
    Object.prototype.toString.call(null); // "[object Null]"
    Object.prototype.toString.call(undefined); // "[object Undefined]"
    
  4. Sprawdzenie właściwości constructor: Mniej niezawodne, ponieważ właściwość constructor może być zmieniona.

    // Sprawdza, czy konstruktor obiektu to Array.
    [].constructor === Array; // true
    ({}).constructor === Object; // false
    

Najbardziej zalecanym i niezawodnym sposobem jest użycie Array.isArray().