如何循环查看JavaScript对象中的一个或某些数组是否为空?
即
const store = {
shirts : [],
shoes: ['nike', 'puma', 'addidas']
hats: [],
jerseys: ['barcelona', 'milan', 'arsenal']
}
答案 0 :(得分:2)
使用Object.values()
获取对象的值。使用some
和Array.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);