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

LaL*_*tie 2 javascript arrays object

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

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;  
}
Run Code Online (Sandbox Code Playgroud)

因此,例如,这将导致以上结果false:

obj {
    0: Array[0]
    1: Array[1]
    2: Array[0]
}
Run Code Online (Sandbox Code Playgroud)

虽然这是我要检查的空白(确实如此):

obj {
    0: Array[0]
    1: Array[0]
    2: Array[0]
}
Run Code Online (Sandbox Code Playgroud)

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

Tim*_*rts 5

因此,如果我们要遍历该对象并查找该对象的每个键是否都通过了检查,则可以像这样使用Object.keysArray#extra every:

var allEmpty = Object.keys(obj).every(function(key){
return obj[key].length === 0
})
Run Code Online (Sandbox Code Playgroud)

这将设置allEmpty为布尔值(true / false),具体取决于我们每次运行给定检查是否obj[key].length === 0返回true。

该对象设置allEmpty为true:

var obj = {
    0: [],
    1: [],
    2: []
}
Run Code Online (Sandbox Code Playgroud)

而将其设置为false:

var obj = {
    0: [],
    1: [],
    2: [],
    3: [1]
}
Run Code Online (Sandbox Code Playgroud)