Кратко
СкопированоСтатический метод 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
Как пишется
СкопированоArray принимает один аргумент — переменную или значение, которое вы хотите проверить.
Возвращает true, если в переменной хранится массив и 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 при переданных массивоподобных элементах. Например, на Node, HTML, 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