如何检查对象中的数组是否全部为空?
这个问题在这里已经有了答案:
因此,如果我们想通过对象,发现如果该对象的每个琴键经过检查,我们可以使用Object.keys
和阵列#额外的every
像这样:
var allEmpty = Object.keys(obj).every(function(key){
return obj[key].length === 0
})
这将根据每次运行给定检查obj[key].length === 0
返回true来将allEmpty
设置为布尔值(true / false)。
该对象将allEmpty
设置为true:
var obj = {
0: [],
1: [],
2: []
}
而这会将其设置为false:
var obj = {
0: [],
1: [],
2: [],
3: [1]
}
一个object
没有长度属性。 还有其他几种方法来循环对象的值,您应该可以找到它们。
要检查一个值是否是一个数组,你可以使用Array.isArray
。
例如:
function objectIsEmpty(obj) {
return Object.keys(obj).every(function(key) {
var val = obj[key];
if (Array.isArray(val) && val.length === 0) {
return true;
}
// Other rules go here:
// ...
return false;
});
};
console.log(objectIsEmpty({ 0: [], 1: [], 2: [] }));
console.log(objectIsEmpty({ 0: [], 1: [1], 2: [] }));
它不起作用,因为你的对象没有length
属性。
试试这个简单的
function isUnPopulatedObject(obj) {
return Object.keys( obj ).filter( function(key){
return obj[ key ].length > 0; //if any array has a property then filter will return this key.
}).length == 0; //used == here since you want to check if all are empty
}
或使用每一个
function isUnPopulatedObject(obj) {
return Object.keys( obj ).every( function(key){
return obj[ key ].length == 0;
});
}
或使用一些
function isUnPopulatedObject(obj) {
return Object.keys( obj ).some( function(key){
return obj[ key ].length > 0;
}) === false;
}
链接地址: http://www.djcxy.com/p/28843.html