Sobes.tech
Junior

Como verificar se um objeto é uma matriz?

sobes.tech IA

Resposta da IA

Existem várias formas:

  1. Usar Array.isArray(). É a forma mais fiável e recomendada.

    const arr = [1, 2, 3];
    const obj = { a: 1 };
    
    console.log(Array.isArray(arr)); // true
    console.log(Array.isArray(obj)); // false
    
  2. Usar instanceof Array. Funciona para arrays criados no frame ou janela atual. Pode dar resultados falsos ao trabalhar com frames ou cenários de domínio cruzado.

    const arr = [1, 2, 3];
    const obj = { a: 1 };
    
    console.log(arr instanceof Array); // true
    console.log(obj instanceof Array); // false
    
  3. Usar Object.prototype.toString.call(). Retorna uma representação em string do tipo do objeto. Para arrays, é "[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
    

A opção mais recomendada é usar Array.isArray(), pois é fiável e não tem efeitos secundários relacionados com o contexto de execução.