Sobes.tech
Junior

Come verificare se un oggetto è un array?

sobes.tech AI

Risposta dell'AI

Esistono diversi metodi:

  1. Usare Array.isArray(). È il metodo più affidabile e consigliato.

    const arr = [1, 2, 3];
    const obj = { a: 1 };
    
    console.log(Array.isArray(arr)); // true
    console.log(Array.isArray(obj)); // false
    
  2. Usare instanceof Array. Funziona per array creati nel frame o finestra corrente. Potrebbe dare risultati falsi quando si lavora con frame o scenari cross-domain.

    const arr = [1, 2, 3];
    const obj = { a: 1 };
    
    console.log(arr instanceof Array); // true
    console.log(obj instanceof Array); // false
    
  3. Usare Object.prototype.toString.call(). Restituisce una rappresentazione in stringa del tipo dell'oggetto. Per gli array, è "[object Array]".

    const arr = [1, 2, 3];
    const obj = { a: 1 };
    
    console.log(Object.prototype.toString.call(arr) === '[object Array]'); // true
    console.log(Object.prototype.toString.call(obj) === '[object Array]'); // false
    

Il metodo più preferibile è usare Array.isArray(), poiché è affidabile e senza effetti collaterali legati al contesto di esecuzione.