检查对象是否等于数组

时间:2017-12-06 08:28:06

标签: javascript jquery arrays json

我想检查对象是否有子对象数组

例如

{
   "parent_category_id": "ABC",
   "parent_category_name": "ABC COMPANY",
   "place_id": 733,
   "industry": {
       "@nil": "true"
   }
   "street_id": 733
}

您如何检查“Industry”对象是否具有子数组。 就像“Industry”的子数组值为“@nil:true”一样。然后提醒孩子

4 个答案:

答案 0 :(得分:1)

您可以咨询instanceof运营商。

例如:

var t = {
    "parent_category_id": "ABC",
    "parent_category_name": "ABC COMPANY",
    "place_id": 733,
    "industry": {
        "@nil": "true"
    },
    "street_id": 733
};

之后,您可以使用:

t.industry instanceof Object // result is: true
t.industry instanceof Array  // result is: false

答案 1 :(得分:0)

如果您只是想检查一个对象是否有子节点并且不是空的,您可以执行IF语句,如:

if (obj.industry) {}

或者像这样使用Object.getOwnPropertyNames(obj)方法,该方法将返回对象中所有属性的名称:

var obj = {
   "parent_category_id": "ABC",
   "parent_category_name": "ABC COMPANY",
   "place_id": 733,
   "industry": {
       "@nil": "true"
   },
   "street_id": 733
};
var names = Object.getOwnPropertyNames(obj.industry);

names.forEach(name => console.log('Property/Value ->', name, obj.industry[name]));

答案 2 :(得分:0)

你可以这样做:

info = {
  "string": "ABC",
  "array": [1, 2, 3],
  "object": {
    "key": "value"
  },
  "object(empty)": {},
}

function isEmpty(obj) {
  if (obj instanceof Object && !(obj instanceof Array)) {
    for (var i in obj) {
      if (hasOwnProperty.call(obj, i)) return false;
    }
  }
  return true;
}

for (var i in info) {
  if (isEmpty(info[i]) == false) {
    console.log(info[i]);
  }
}

参考:Is object empty?

答案 3 :(得分:-1)

Array.isArray(parentobj.industry)

如果您打算检查它是否是数组