Назад к вопросам
Junior
99
questionbank

Как проверить, что объект является массивом?

Sobes Copilot

Получайте ответы в реальном времени

Ответ от нейросети

sobes.tech 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. Работает для массивов, созданных в текущем фрейме или окне. Может давать ложные результаты при работе с фреймами или кросс-доменными сценариями.

    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(), так как он надежен и не имеет побочных эффектов, связанных с контекстом выполнения.