JS-检查对象内部的数组是否为空

时间:2019-07-18 18:43:08

标签: javascript ecmascript-6

如何循环查看JavaScript对象中的一个或某些数组是否为空?

const store = {
shirts : [],
shoes: ['nike', 'puma', 'addidas']
hats: [],
jerseys: ['barcelona', 'milan', 'arsenal']
}

5 个答案:

答案 0 :(得分:2)

使用Object.values()获取对象的值。使用someArray.isArray()

检查其中至少一个是length为0的数组。

const store = {
  shirts: [],
  shoes: ['nike', 'puma', 'addidas'],
  hats: [],
  jerseys: ['barcelona', 'milan', 'arsenal']
}

console.log(
  Object.values(store).some(v => Array.isArray(v) && v.length === 0)
)

答案 1 :(得分:2)

如果您只想知道是否有一个空数组,则如果其中一个数组为空,则val将为true,否则为false。

val = Object.keys(store).some(key => store[key].length === 0)

答案 2 :(得分:1)

const store = {
shirts : [],
shoes: ['nike', 'puma', 'addidas'],
hats: [],
jerseys: ['barcelona', 'milan', 'arsenal']
}

for(let item in store){
  if(store[item].length == 0)
    console.log(item)
}


每个空项目都将记录到控制台

答案 3 :(得分:1)

这是一个班轮:

const main = o => Object.entries(o).some(([k,a])=>!a.length);

console.log(
  main({x: [1,2,3],y: [123],}), // false
  main({x: [1,2,3],y: [],}), // true
  main({x: [],y: [],}), // true
);

答案 4 :(得分:1)

如果要获取空键,则可以使用过滤器方法

const store = {
  shirts : [],
  shoes: ['nike', 'puma', 'addidas'],
  hats: [],
  jerseys: ['barcelona', 'milan', 'arsenal']
}

const emptyKeys = Object.keys(store).filter((key) => {
                     if (store[key].length == 0) { 
                       return key; 
                     } 
                   });

console.log(emptyKeys);