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

myData.value1.ext = true;

How can I loop through myData to see if the ext for all the properties in my object are true?

Something like this:

if (value1.ext === true && value2.ext === true) {
     //do something
}
Emma
  • 27,428
  • 11
  • 44
  • 69
Si8
  • 9,141
  • 22
  • 109
  • 221

4 Answers4

3

You can use every() on Object.values()

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


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

console.log(res)
Maheer Ali
  • 35,834
  • 5
  • 42
  • 73
0

You could get the values and check the property.

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

console.log(Object.values(object).every(({ ext }) => ext));
Nina Scholz
  • 376,160
  • 25
  • 347
  • 392
0

You can use every() to check if the values fit the condition:

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


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

console.log(areValuesTrue)
Kobe
  • 6,226
  • 1
  • 14
  • 35
0

You can do Object.values and then map to get all the value of ext. Then use includes to check if any true is there

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))
brk
  • 48,835
  • 10
  • 56
  • 78