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

时间:2015-02-11 14:16:25

标签: javascript

您好我有一个对象:

var equippedItems = {
weapon: {},
armor: {},
accessory: {}
};

我需要一种方法来检查equipItems.weapon是否等于''在某些时候我正在做类似equippedItems.weapon = '';的事情我不知道它是否与上述对象完全相同。我已经尝试过使用object.hasOwnProperty,但在这种情况下我似乎无法使用equippedItems.weapon,也许我做错了什么?另请注意,我确实已经阅读了如何检查对象是否已经为空,但它对于对象内部的对象没有用。

@Edit:

就像我说的那样,我已经阅读了那些并且他们没有给我一个直接回答我的问题,他们确实回答了如何检查对象是否为空,但对象就像object = {};而我的就像 object = { object:{}, object2:{}, object3:{}};

这就是为什么它让我感到困惑。

2 个答案:

答案 0 :(得分:3)

只需使用Object.keys

即可
function isEmpty(obj, propName){
   return Object.keys(obj[propName]).length == 0;
}

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

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

在这两种情况下,你都可以像

那样调用函数
if(isEmpty(equipmentItems.weapons)){
   equipmentItems.weapons = "";
} 

答案 1 :(得分:0)

要检查对象是否具有可以使用的属性:

"weapon" in equippedItems

equippedItems.hasOwnProperty("weapon")