这是我的示例数据。我想检查对象内的数组是否为空。
{
collection: Array(0),
availability: Array(0),
gender: Array(0),
brand: Array(0),
}
以下是我现在正在使用的代码(从其他stackoverflow链接复制)。
function objectIsEmpty(obj) {
return Object.keys(obj).every(function(key) {
var val = obj[key];
if (Array.isArray(val) && val.length === 0) {
return true;
}
return false;
});
}
以上代码运行正常。 我的主要问题是,有没有一种更干净的方法可以通过jQuery代码检查对象中的所有空数组,就像我们使用jQuery.isEmptyObject()来检查Empty对象一样?
谢谢
答案 0 :(得分:6)
ES8具有Object.values
,如果您只需要这些值,它比Object.keys
好。您还可以直接返回Array.isArray(val) && val.length === 0
测试,并根据需要简洁地返回:
const objectIsEmpty = obj => Object.values(obj).every(
val => Array.isArray(val) && val.length === 0
);
答案 1 :(得分:2)
您不需要所有的退货和分配。例如
function objectIsEmpty(obj) {
return Object.keys(obj).every(key =>
Array.isArray(obj[key]) && obj[key].length;
);
}