javascript - 如何检查对象中的数组是否都是空的?

标签 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;  
}

因此,例如,这将导致上述结果为 false :
obj {
    0: Array[0]
    1: Array[1]
    2: Array[0]
}

虽然这是我正在检查的空(这是真的):
obj {
    0: Array[0]
    1: Array[0]
    2: Array[0]
}

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

最佳答案

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

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

这将设置 allEmpty为 bool 值(真/假),取决于我们是否每次运行给定的检查 obj[key].length === 0返回真与否。

此对象设置 allEmpty为真:
var obj = {
    0: [],
    1: [],
    2: []
}

虽然这将其设置为 false:
var obj = {
    0: [],
    1: [],
    2: [],
    3: [1]
}

关于javascript - 如何检查对象中的数组是否都是空的?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/39919560/

相关文章:

javascript - 这个网页是如何动态加载数据的?

javascript - 使用 ng-repeat Angularjs 进行排序

c - 无法释放分配的内存

c++ - 这两个字符串有什么区别?

javascript - 使用 Javascript 从 2 个数组中提取值并删除重复的 'titles' ...?

javascript - 从数组中选择随机加权对象

javascript - 在这种情况下如何阻止 jQuery 函数多次执行?

javascript - 切换复选框时如何获取选中的复选框数量

javascript - 如何访问和处理嵌套对象,数组或JSON?

python - Python 如何建立对象之间的相等性?