Кратко
Секция статьи "Кратко"Статический метод Array
проверяет, является ли переданный аргумент массивом. Возвращает true
, если является, и false
— если нет.
Как пишется
Секция статьи "Как пишется"const arr = [1, 2, 3]const emptyArr = []const bool = trueconst num = 5console.log(Array.isArray(arr))// trueconsole.log(Array.isArray(emptyArr))// trueconsole.log(Array.isArray(bool))// falseconsole.log(Array.isArray(num))// false
const arr = [1, 2, 3] const emptyArr = [] const bool = true const num = 5 console.log(Array.isArray(arr)) // true console.log(Array.isArray(emptyArr)) // true console.log(Array.isArray(bool)) // false console.log(Array.isArray(num)) // false
Как понять
Секция статьи "Как понять"Время от времени необходимо проверить, хранится в переменной массив или что-то другое. Так как массивы не являются в JavaScript отдельным типом, то проверка с помощью typeof
не подойдёт:
const a = []console.log(typeof a)// 'object'
const a = [] console.log(typeof a) // 'object'
Чтобы проверить, является ли значение массивом, существует метод Array
.
Метод принимает один аргумент – значение, которое мы хотим проверить: Array
.
Если был передан массив, то вернётся true
, иначе — false
.
Метод возвращает true
при любом переданном массиве, неважно, как он был создан и какие данные в нём находятся:
console.log(Array.isArray([]))// trueconsole.log(Array.isArray(new Array(1, 2, 3)))// trueconsole.log(Array.isArray([undefined]))// trueconsole.log(Array.isArray(Array()))// trueconsole.log(Array.isArray(Array.prototype))// true
console.log(Array.isArray([])) // true console.log(Array.isArray(new Array(1, 2, 3))) // true console.log(Array.isArray([undefined])) // true console.log(Array.isArray(Array())) // true console.log(Array.isArray(Array.prototype)) // true
Во всех остальных случаях возвращается false
:
console.log(Array.isArray({}))// falseconsole.log(Array.isArray(1))// falseconsole.log(Array.isArray('array'))// false
console.log(Array.isArray({})) // false console.log(Array.isArray(1)) // false console.log(Array.isArray('array')) // false
Массивоподобные объекты
Секция статьи "Массивоподобные объекты"Метод возвращает false
при переданных массивоподобных элементах. Например, на NodeList
, HTMLCollection
, arguments
.
const nodes = document.querySelectorAll('div')console.log(Array.isArray(nodes))// false
const nodes = document.querySelectorAll('div') console.log(Array.isArray(nodes)) // false
Типизированные массивы
Секция статьи "Типизированные массивы"Метод возвращает false
при любых переданных типизированных массивах: Int8Array, Uint8Array, Uint8ClampedArray, Int16Array, Uint16Array, Int32Array, Uint32Array, Float32Array, Float64Array, BigInt64Array, BigUint64Array.
const typedArray = new Uint8Array()console.log(Array.isArray(typedArray))// false
const typedArray = new Uint8Array() console.log(Array.isArray(typedArray)) // false