Sobes.tech
Junior

Как да проверите дали обектът е масив?

sobes.tech AI

Отговор от AI

Има няколко начина:

  1. Използвайте Array.isArray(). Това е най-надеждният и препоръчителен начин.

    const arr = [1, 2, 3];
    const obj = { a: 1 };
    
    console.log(Array.isArray(arr)); // true
    console.log(Array.isArray(obj)); // false
    
  2. Използвайте instanceof Array. Работи за масиви, създадени в текущия фрейм или прозорец. Може да дава фалшиви резултати при работа с рамки или сценарии cross-domain.

    const arr = [1, 2, 3];
    const obj = { a: 1 };
    
    console.log(arr instanceof Array); // true
    console.log(obj instanceof Array); // false
    
  3. Използвайте Object.prototype.toString.call(). Връща низово представяне на типа на обекта. За масиви това е "[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
    

Най-препоръчителният начин е използването на Array.isArray(), тъй като е надежден и няма странични ефекти, свързани с контекста на изпълнение.