Как проверить, является ли переменная объектом или массивом? - PullRequest
0 голосов
/ 10 ноября 2018

У меня есть проблема, я не знаю, как ее решить, у меня есть некоторая информация о том, как я должен сравнивать или проверять переменную, если это была array или object

Я пробовал это

console.log({} == []); // return false
console.log({1:"haha"} == {}); // return false
console.log(["haha"] == {}); // retun false

Проблема в том, что я хочу знать, является ли переменная действительно object причиной typeof обоих [] или {} return object.

console.log(isobject({1:"haha"})) // should return true;
console.log(isobject(["haha"])); // should return false;

Или

console.log(isobject({})) // should return true;
console.log(isobject([])); // should return false;

Есть ли function для проверки variable, как указано выше?Спасибо за любое исправление.

Ответы [ 2 ]

0 голосов
/ 10 ноября 2018

Это помогло бы.

var a = [], b = {};

console.log(Object.prototype.toString.call(a).indexOf("Array")>-1);
console.log(Object.prototype.toString.call(b).indexOf("Object")>-1);

console.log(a.constructor.name == "Array");
console.log(b.constructor.name == "Object");

Есть много других способов, но вышеприведенное обратно совместимо во всех браузерах.

По соответствующим вопросам следует обращаться:

Проверить, является ли значение массивом

Проверить, является ли значение объектом

0 голосов
/ 10 ноября 2018

arr = [1,2,3]

Array.isArray(arr) // должен вывести true

для объекта я бы сделал obj = {a:1}

Object.keys(obj).length // должен вывести 1

чтобы вы могли сделать

Object.keys(obj).length >= 0 // должно быть истинным, если obj буквально obj.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...