Рубрики
Без рубрики

JavaScript: Проверьте, является ли объект массивом

В этой статье мы обсудим различные методы, чтобы определить, является ли объект массивом в JavaScript с использованием метода Arrays.isarray (), ExcanceOF оператора и т. Д.

Автор оригинала: 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 Оператор и другие свойства объекта, чтобы определить, является ли это массив.