你好,我有一个对象:
var equippedItems = {
weapon: {},
armor: {},
accessory: {}
};
Run Code Online (Sandbox Code Playgroud)
我需要一种方法来检查 allowedItems.weapon 是否''在某个时候等于我正在做的事情equippedItems.weapon = '';我不知道它是否与上面的对象完全相同。我已经尝试过使用,object.hasOwnProperty但equippedItems.weapon在这种情况下似乎无法使用,也许我做错了什么?另请注意,我确实阅读了如何检查对象是否已经为空,但它不适用于对象内的对象。
@编辑:
就像我说的,我已经读过那些,他们没有直接回答我的问题,他们确实回答了如何检查对象是否为空,但是对象就像object = {};我的一样
object = {
object:{},
object2:{},
object3:{}};
这就是为什么它让我感到困惑。
只要利用 Object.keys
function isEmpty(obj, propName){
return Object.keys(obj[propName]).length == 0;
}
Run Code Online (Sandbox Code Playgroud)
另一种方法是使用如果为空JSON.stringify则返回的方法{}
function isEmpty(obj, propName){
return JSON.stringify(obj[propName]) == "{}";
}
Run Code Online (Sandbox Code Playgroud)
在这两种情况下,您都会像这样调用函数
if(isEmpty(equipmentItems.weapons)){
equipmentItems.weapons = "";
}
Run Code Online (Sandbox Code Playgroud)