Learn JavaScript

Array.isArray() - метод для проверки массива в JavaScript

Array.isArray() проверяет, является ли значение массивом.

Это стандартный и самый надёжный способ понять, перед нами массив или нет.

Синтаксис

Array.isArray(value)

Метод принимает одно значение и возвращает:

  • true, если это массив
  • false, если это не массив

Что делает Array.isArray()

Если передать массив, метод вернёт true:

console.log(Array.isArray([])); // true
console.log(Array.isArray([1, 2, 3])); // true
console.log(Array.isArray(new Array())); // true

Если значение не является массивом, результат будет false:

console.log(Array.isArray("hello")); // false
console.log(Array.isArray({})); // false
console.log(Array.isArray(null)); // false
console.log(Array.isArray(undefined)); // false

Почему не typeof

Новички часто пытаются проверить массив через typeof, но это не работает как ожидается.

console.log(typeof []); // "object"
console.log(typeof {}); // "object"

И массив, и обычный объект дают "object", поэтому typeof не помогает отличить одно от другого.

Для такой проверки обычно используют именно Array.isArray().

Массив и объект, похожий на массив

Не всё, что имеет length и индексы, является настоящим массивом.

const arrayLike = {
  0: "a",
  1: "b",
  length: 2,
};

console.log(Array.isArray(arrayLike)); // false
console.log(Array.isArray(["a", "b"])); // true

Это важный момент: array-like объект и массив - не одно и то же.

Array.isArray() и instanceof Array

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

console.log([] instanceof Array); // true

Это может работать, но Array.isArray() обычно надёжнее и читается понятнее.

Именно его чаще используют в обычном коде:

if (Array.isArray(value)) {
  console.log("Это массив");
}

Когда это полезно

Array.isArray() удобно использовать, когда:

  • функция может получить массив или другое значение
  • нужно проверить данные перед map(), filter() или forEach()
  • важно отличить массив от обычного объекта

Пример:

function printList(value) {
  if (!Array.isArray(value)) {
    console.log("Ожидался массив");
    return;
  }

  console.log(value.join(", "));
}

Частые ошибки

Проверять массив через typeof

console.log(typeof []); // "object"

Так нельзя надёжно понять, что значение является массивом.

Считать, что объект с length - это массив

const value = { 0: "a", 1: "b", length: 2 };

console.log(Array.isArray(value)); // false

Наличие length ещё не делает значение массивом.

Считать, что это метод массива

const arr = [1, 2, 3];

// arr.isArray(); // Ошибка

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

Быстрая памятка

  • Array.isArray() проверяет, является ли значение массивом
  • метод возвращает true или false
  • typeof [] возвращает "object", поэтому для массива он не подходит
  • объект с length не обязательно является массивом
  • Array.isArray() - это статический метод Array

Коротко

Array.isArray() - это стандартный способ проверить массив в JavaScript. Если нужно отличить массив от строки, null, объекта или array-like значения, обычно используют именно его.