Array.isArray() в JavaScript
- Что делает Array.isArray()
- Синтаксис
- Проверка разных значений
- Почему не typeof
- Пустой массив
- Проверка перед работой с массивом
- Объекты и массивы
- Итого
Array.isArray() проверяет, является ли значение массивом.
let numbers = [10, 20, 30];
console.log(Array.isArray(numbers));
Результат:
true
Переменная numbers хранит массив, поэтому метод вернул true.
Что делает Array.isArray()
Array.isArray() возвращает true, если переданное значение является массивом. Во всех остальных случаях будет false.
console.log(Array.isArray(['HTML', 'CSS'])); // true
console.log(Array.isArray('HTML')); // false
console.log(Array.isArray(10)); // false
Метод не смотрит на содержимое массива. Ему важно только, массив это или нет.
Синтаксис
Общая запись выглядит так:
Array.isArray(value)
value - значение, которое нужно проверить.
let users = ['Анна', 'Олег'];
let result = Array.isArray(users);
console.log(result);
Результат:
true
Array.isArray() вызывается у Array, а не у самого массива.
let users = ['Анна', 'Олег'];
console.log(Array.isArray(users)); // правильно
Проверка разных значений
Метод удобно использовать, когда значение может прийти из разных мест: из функции, формы, API или другого участка кода.
console.log(Array.isArray([])); // true
console.log(Array.isArray({})); // false
console.log(Array.isArray(null)); // false
console.log(Array.isArray(undefined)); // false
Если результат true, значит с этим значением можно работать как с массивом.
Почему не typeof
Оператор typeof не подходит для точной проверки массива.
console.log(typeof []);
console.log(typeof {});
Результат:
object
object
И массив, и обычный объект дают ‘object’. Поэтому, если нужно отличить массив от объекта, используйте Array.isArray().
console.log(Array.isArray([])); // true
console.log(Array.isArray({})); // false
Пустой массив
Пустой массив тоже считается массивом.
let items = [];
console.log(Array.isArray(items)); // true
console.log(items.length); // 0
Array.isArray() проверяет тип значения, а не количество элементов внутри.
Проверка перед работой с массивом
Часто проверку делают перед тем, как вызывать методы массива.
function showItems(items) {
if (!Array.isArray(items)) {
return;
}
for (let item of items) {
console.log(item);
}
}
showItems(['HTML', 'CSS', 'JavaScript']);
showItems('HTML');
Если передать не массив, функция просто завершится и не попытается перебирать значение как список.
Объекты и массивы
Массивы и объекты похожи тем, что оба могут хранить несколько значений. Но для JavaScript это разные структуры.
let user = { name: 'Анна', age: 25 };
let skills = ['HTML', 'CSS'];
console.log(Array.isArray(user)); // false
console.log(Array.isArray(skills)); // true
Если нужно проверить обычный объект, Array.isArray() не подойдет. Этот метод отвечает только на вопрос: массив это или нет.
Итого
Array.isArray() проверяет, является ли значение массивом.
Array.isArray(value)возвращаетtrueилиfalse.- Пустой массив тоже вернет
true. typeofне отличает массив от обычного объекта.- Метод удобно использовать перед перебором или вызовом методов массива.
Array.isArray()проверяет только сам факт массива, а не его содержимое.