如何检查对象内部的数组是否为空

时间:2020-04-06 08:48:20

标签: javascript jquery

这是我的示例数据。我想检查对象内的数组是否为空。

{
  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对象一样?

谢谢

2 个答案:

答案 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;
    );
}