如何检查所有属性值是否为真?

时间:2019-05-23 15:17:55

标签: javascript object

var myData = {
  "value1": {
      "ext": false
  },
  "value2": {
      "ext": false
  }
};

myData.value1.ext = true;

如何遍历myData以查看对象中所有属性的ext是否为true

类似这样的东西:

if (value1.ext === true && value2.ext === true) {
     //do something
}

4 个答案:

答案 0 :(得分:4)

您可以在every()上使用Object.values()

var myData = {
  "value1": {
      "ext": false
  },
  "value2": {
      "ext": false
  }
};


const res = Object.values(myData).every(x => x.ext);

console.log(res)

答案 1 :(得分:2)

您可以获取值并检查属性。

var object = { value1: { ext: true }, value2: { ext: true } };

console.log(Object.values(object).every(({ ext }) => ext));

答案 2 :(得分:0)

您可以使用every()来检查值是否符合条件:

var myData = {
  "value1": {
      "ext": false
  },
  "value2": {
      "ext": false
  }
};


const areValuesTrue = Object.keys(myData).every(value => myData[value].ext == true)

console.log(areValuesTrue)

答案 3 :(得分:0)

您可以先执行Object.values,然后执行map以获取ext的所有值。然后使用includes检查是否有true

var myData = {
  "value1": {
    "ext": false
  },
  "value2": {
    "ext": false
  }
};
let k = Object.values(myData).map(item => item.ext);
// this will be true if any ext value is true
console.log(k.includes(true))