Как проверить, является ли объект массивом?
Я пытаюсь написать функцию, которая принимает либо список строк, либо одну строку. Если это строка, то я хочу преобразовать её в массив с единственным элементом, чтобы потом можно было перебрать его без опасения получить ошибку.
Как мне проверить, является ли переменная массивом?
4 ответ(ов)
Сначала я бы проверил, поддерживает ли ваша реализация функцию isArray
:
if (Array.isArray)
return Array.isArray(v);
Также вы можете попробовать использовать оператор instanceof
:
v instanceof Array
Этот метод является самым быстрым среди всех существующих (поддерживает все браузеры):
function isArray(obj){
return !!obj && obj.constructor === Array;
}
Функция isArray
проверяет, является ли переданный объект массивом. Она делает это, проверяя, что объект не является null
или undefined
(с помощью !!obj
), а затем сравнивает его конструктор с Array
. Этот подход эффективен, так как использует прямое сравнение с конструктором массива, что делает его очень быстрым в исполнении.
Вот простой способ проверить, является ли объект массивом, с помощью функции:
function isArray(object) {
return object.constructor === Array;
}
Эта функция возвращает true
, если переданный объект — это массив, и false
в противном случае. Однако стоит отметить, что этот метод не учитывает случаи, когда объект был создан в другом контексте (например, в iframe).
Для более надежной проверки можно использовать метод Array.isArray()
:
function isArray(object) {
return Array.isArray(object);
}
Этот способ является более предпочтительным, так как он правильно работает для массивов, созданных в различных контекстах.
Для проверки, является ли переменная x
массивом, можно использовать одно строчное решение:
x instanceof Array;
Это выражение вернёт true
, если x
является массивом, и false
, если нет.
Поиск объекта в массиве объектов JavaScript с совпадающим значением
Как перемешать (сделать случайным) массив в JavaScript?
Как объединить два массива в JavaScript и удалить дубликаты?
Как очистить массив в JavaScript?
Выбор последнего элемента в массиве JavaScript