使用javascript检查对象内的对象是否为空

Check if object inside an object is empty with javascript

本问题已经有最佳答案,请猛点这里访问。

你好,我有一个物体:

1
2
3
4
5
var equippedItems = {
weapon: {},
armor: {},
accessory: {}
};

我需要一种方法来检查装备物品。武器是否等于'',在某个时候我正在做类似equippedItems.weapon = '';的事情,我不知道它是否与上述物体完全相同。我已经尝试过使用object.hasOwnProperty,但在这种情况下,我似乎不能使用equippedItems.weapon,也许我做错了什么?另外请注意,我已经阅读了如何检查对象是否已经是空的,但它对对象内部的对象不起作用。

@编辑:

就像我说的,我已经读过了,他们没有给我一个直接的答案,他们回答了如何检查物体是否是空的,但是物体就像是object = {};,而我的是object = {
object:{},
object2:{},
object3:{}};

这就是它让我困惑的原因。


利用EDOCX1[0]

1
2
3
function isEmpty(obj, propName){
   return Object.keys(obj[propName]).length == 0;
}

另一种方法是使用JSON.stringify方法,如果为空,该方法将返回{}

1
2
3
function isEmpty(obj, propName){
   return JSON.stringify(obj[propName]) =="{}";
}

在这两种情况下,您将调用函数

1
2
3
if(isEmpty(equipmentItems.weapons)){
   equipmentItems.weapons ="";
}


要检查对象是否具有可以使用的属性,请执行以下操作:

1
"weapon" in equippedItems

1
equippedItems.hasOwnProperty("weapon")