如何检查对象中的所有属性是否未定义

时间:2018-04-20 15:15:33

标签: javascript typescript

我想检查一个对象的所有属性是否都是未定义的我试过这个但是这总是正确的,因为当其中一个未定义时,它是真的:

// Check if property is undefined
for (var property in filters) {
  if (Object.keys(property).indexOf(undefined)) {
     return this.restaurantsList;
  }
}

filters对象如下所示:

{
   ishnationality: undefined
   dishtype: undefined
   organizeby: undefined
}

如何简单地检查是否所有内容都未定义?

3 个答案:

答案 0 :(得分:1)

  Object.values(filters).every(el => el === undefined)

您实际上是在寻找对象值,而不是它的键。

答案 1 :(得分:0)

function checkForUndefined(object) {
    for (var key in object) {
        if (object[key] !== undefined)
            return true;
    }
    return false;
}

这个功能怎么样?

答案 2 :(得分:-1)

以下是评估对象中每个属性值的示例:

function allUndefined(obj){
  for(var p in obj) {
    if(obj[p] !== undefined){
      return false;
    }
  }
  return true;
}

var filtersAllUndefined = {
  ishnationality: undefined,
  x: undefined
}

console.log(allUndefined(filtersAllUndefined));

var filterSomeUndefined = {
  ishnationality: undefined,
  x: 3
}
console.log(allUndefined(filterSomeUndefined));