您好我有一个对象:
var equippedItems = {
weapon: {},
armor: {},
accessory: {}
};
我需要一种方法来检查equipItems.weapon是否等于''
在某些时候我正在做类似equippedItems.weapon = '';
的事情我不知道它是否与上述对象完全相同。我已经尝试过使用object.hasOwnProperty
,但在这种情况下我似乎无法使用equippedItems.weapon
,也许我做错了什么?另请注意,我确实已经阅读了如何检查对象是否已经为空,但它对于对象内部的对象没有用。
@Edit:
就像我说的那样,我已经阅读了那些并且他们没有给我一个直接回答我的问题,他们确实回答了如何检查对象是否为空,但对象就像object = {};
而我的就像
object = {
object:{},
object2:{},
object3:{}};
这就是为什么它让我感到困惑。
答案 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")