Sobes.tech
Junior

Kako proveriti da li je ovo polje niz?

sobes.tech АИ

Одговор од АИ

Postoji nekoliko načina da proverite da li je dato polje niz:

  1. Array.isArray(): Najpreferiraniji i savremen način.

    // Proverava da li je vrednost niz.
    // Vraća true ili false.
    Array.isArray([]); // true
    Array.isArray({}); // false
    Array.isArray(null); // false
    Array.isArray(undefined); // false
    Array.isArray(123); // false
    Array.isArray('string'); // false
    
  2. instanceof Array: Radi za nizove kreirane u trenutnom okviru.

    // Proverava da li je objekat instanca klase Array.
    // Može dati netačne rezultate pri radu sa iframe-ovima.
    [] instanceof Array; // true
    new Array() instanceof Array; // true
    ({}); // false
    
  3. Object.prototype.toString.call(): Pouzdan način koji zaobilazi probleme sa instanceof u različitim okvirima.

    // Vraća string reprezentaciju tipa objekta.
    // Za nizove vraća "[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. Provera svojstva constructor: Manje pouzdano, jer se svojstvo constructor može menjati.

    // Proverava da li je konstruktor objekta Array.
    [].constructor === Array; // true
    ({}).constructor === Object; // false
    

Najpreporučljiviji i najpouzdaniji način u većini slučajeva je korišćenje Array.isArray().