Автор оригинала: Guest Contributor.
Вступление
Работа с массивами в JavaScript – это общая деятельность. Иногда мы получаем переменную в JavaScript, что нам нужно быть массивом, но мы не уверены, что это так.
Не примитивные типы данных в Javascripts являются все объекты (функции имеют свой собственный тип, но они тоже являются объектами). В результате это недостаточно для использования Тип
Оператор, который обычно используется для определения типа данных:
let result = { subject: 'Science', marks: 97 }; let numbers = [1, 2, 3, 4, 5]; console.log(typeof result); // Object console.log(typeof numbers); // Object
В этой статье мы посмотрим, как проверить, является ли заданную переменную или значение массивом или нет, в JavaScript.
Использование метода Array.isarray ()
Как предполагает имя, этот метод можно использовать для идентификации того, является ли данный аргумент массивом или нет. Возвращает логическое значение ( True
/ False
) значение с результатом.
Например, со следующими переменными Array.isarray ()
Метод правильно определяет, являются ли они одним или нет:
let result = { subject: "Science", marks: 97 }; // Object let numbers = [1, 2, 3, 4, 5]; // Array let name = "Mark"; // String let names = new Array("Jill", "Jane", "Jacqueline"); console.log(Array.isArray(result)); // false console.log(Array.isArray(numbers)); // true console.log(Array.isArray(name)); // false console.log(Array.isArray(names)); // true
Используя свойство конструктора объекта
У каждого объекта есть Конструктор
Свойство (кроме объектов, созданных с Object.Create (NULL)
, маловероятное возникновение). Мы можем сравнить свойство конструктора напрямую с JavaScript’s Конструктор Функции Отказ Поэтому, если мы сравним его с функцией конструктора Array, мы узнаем, если это массив.
Примечание : Функция конструктора – это функция, которая инициализирует объект. Если вы создали объект с Новый
Ключевое слово, вы сделали это с функцией конструктора. Например, в Пусть массив (1, 2)
Используемая функция конструктора IS Массив ()
Отказ
Вы можете использовать свойство конструктора, чтобы определить, является ли переменная массивом:
let result = { subject: "Science", marks: 97 }; let numbers = [1, 2, 3, 4, 5]; let name = "Mark"; let names = new Array("Jill", "Jane", "Jacqueline"); console.log(result.constructor === Array); // false console.log(numbers.constructor === Array); // true console.log(name.constructor === Array); // false console.log(names.constructor === Array); // true
Использование оператора Instanceof
Instanceof
Оператор проверяет, находится ли функция конструктора в цепочке прототипа объекта. Если вы менее знакомы с прототипом JavaScript, оператор проверяет, был ли объект создан классом, и если нет, проверяет, если объект был получен из этого класса.
Как Тип
Оператор, он возвращает логическое значение. Чтобы определить, является ли переменная массивом, мы можем использовать Instanceof
как это:
let result = { subject: "Science", marks: 97 }; let numbers = [1, 2, 3, 4, 5]; let name = "Mark"; let names = new Array("Jill", "Jane", "Jacqueline"); console.log(result instanceof Array); // false console.log(numbers instanceof Array); // true console.log(name instanceof Array); // false console.log(names instanceof Array); // true
Использование метода Object.Prototye.Call ()
Все объекты в JavaScript наследуют свойства от основного объекта прототипа, удачно названы Объект. Прототип
Отказ А TOSTRING ()
Метод существует в Объект. Прототип
именно поэтому у каждого объекта есть TOSTRING ()
метод их собственного. TOSTRING ()
метод Объект. Прототип
Отображает тип объекта.
Звоните ()
Способ объектов выполняет функцию, но меняет значение это
К объекту, переданному в его аргументах I.e. Это позволяет объекту использовать метод от другого объекта.
Поэтому мы можем использовать Object.Prototype.tostring ()
Чтобы распечатать тип, а затем использовать Звоните ()
Так что это сделано для другого объекта. Затем мы сравним это строковое значение, чтобы определить, является ли это массив:
let result = { subject: "Science", marks: 97 }; let numbers = [1, 2, 3, 4, 5]; let name = "Mark"; let names = new Array("Jill", "Jane", "Jacqueline"); console.log(Object.prototype.toString.call(result)); // [object Object] console.log(Object.prototype.toString.call(numbers)); // [object Array] console.log(Object.prototype.toString.call(name)); // [object String] console.log(Object.prototype.toString.call(names)); // [object Array] console.log(Object.prototype.toString.call(result) === "[object Array]"); // false console.log(Object.prototype.toString.call(numbers) === "[object Array]"); // true console.log(Object.prototype.toString.call(name) === "[object Array]"); // false console.log(Object.prototype.toString.call(names) === "[object Array]"); // true
Маловероятно, что вы будете использовать этот метод, но никогда не преодолеет узнать больше о объектах JavaScript!
Заключение
В этой статье мы смотрели несколько способов JavaScript, чтобы определить, является ли объектом массивом. Самый простой способ – это Array.isarray ()
Метод, скорее всего, будет использоваться в производстве.
Однако мы всегда можем использовать Instanceof
Оператор и другие свойства объекта, чтобы определить, является ли это массив.