Sobes.tech
Junior

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

sobes.tech AI

Отговор от AI

Има няколко начина да проверите дали дадено поле е масив:

  1. Array.isArray(): Най-препоръчителният и модерен начин.

    // Проверява дали стойността е масив.
    // Връща true или false.
    Array.isArray([]); // true
    Array.isArray({}); // false
    Array.isArray(null); // false
    Array.isArray(undefined); // false
    Array.isArray(123); // false
    Array.isArray('низ'); // false
    
  2. instanceof Array: Работи за масиви, създадени в текущия фрейм.

    // Проверява дали обектът е инстанция на класа Array.
    // Може да дава неправилни резултати при работа с iframe.
    [] instanceof Array; // true
    new Array() instanceof Array; // true
    ({}); // false
    
  3. Object.prototype.toString.call(): Надежден начин, който избягва проблеми с instanceof в различни рамки.

    // Връща низово представяне на типа на обекта.
    // За масиви връща "[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. Проверка на свойството constructor: По-малко надеждно, тъй като свойството constructor може да бъде променено.

    // Проверява дали конструкторът на обекта е Array.
    [].constructor === Array; // true
    ({}).constructor === Object; // false
    

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