我有一个这样的对象:
{
places: [],
interests: [],
checkIns: []
}
如何轻松地检查这些数组中是否有任何数组为空?
发布于 2018-10-30 01:01:50
如果您使用的是ES6:
Object.values(obj).every(x => !x.length)
仅当obj
的所有数组均为空时才返回true。
示例:
var obj = {
places: [],
interests: [],
checkIns: []
}
console.log(Object.values(obj).every(x => !x.length));
var obj = {
places: [1],
interests: [],
checkIns: []
}
console.log(Object.values(obj).every(x => !x.length));
发布于 2018-10-30 01:06:16
如果对象的属性确实是Array
的实例,则可以通过使用Object.entries
和Array.prototype.forEach
并检查数组的长度来迭代对象的属性。
var o = {
places: [],
interests: [],
checkIns: [],
someItems: [1, 2, 3, 4],
notArr: false
};
Object.entries(o).forEach(function(entry) {
let [key, value] = entry;
if (value instanceof Array) {
if (value.length === 0) {
console.log(`${key} is an empty array`);
} else {
console.log(`${key} is an array that contains items`);
}
} else {
console.log(`${key} is not an array`);
}
})
https://stackoverflow.com/questions/53050372
复制相似问题