提问者:小点点

如何检查对象中的数组是否全部为空?[副本]


所以我需要传入一个对象,其中每个属性都是数组。该函数将使用每个数组中保存的信息,但我希望通过检查其每个数组是否为空/空来检查整个对象是否为空(不仅仅是没有属性)。我目前所掌握的:

function isUnPopulatedObject(obj) { // checks if any of the object's values are falsy
    if (!obj) {
        return true;
    }

    for (var i = 0; i < obj.length; i++) {
        console.log(obj[i]);
        if (obj[i].length != 0) {
            return false;
        }    
    }

    return true;  
}

例如,这将导致上面的false:

obj {
    0: Array[0]
    1: Array[1]
    2: Array[0]
}

而这是我正在检查的空(也是真的):

obj {
    0: Array[0]
    1: Array[0]
    2: Array[0]
}

上面的代码不起作用。提前道谢。


共1个答案

匿名用户

因此,如果我们想要遍历对象并查找该对象的每个键是否通过检查,我们可以使用object.keys和数组#extraevery,如下所示:

var allEmpty = Object.keys(obj).every(function(key){
return obj[key].length === 0
})

这将根据每次运行给定检查obj[key].length===0是否返回true而将allempty设置为布尔值(true/false)。

此对象将AllEmpty设置为true:

var obj = {
    0: [],
    1: [],
    2: []
}

当它设置为false时:

var obj = {
    0: [],
    1: [],
    2: [],
    3: [1]
}