如何检查分组对象中所有对象中特定键的值是否相同?

How to check if the value of a specific key is the same in all objects within a grouped object?

我有一组对象,我想检查其中的特定键在该组中的每个对象中是否始终具有相同的值。

这是我的简化示例:

组的console.log..

console.log(this.groupedObjects);

..returns以下..

{One: {…}, Two: {…}, Three: {…}}

..展开后看起来像这样:

One: {type: "One", high: 5, medium: 0, low: 10, selected: false, …}
Two: {type: "Two", high: 56, medium: 0, low: 0, selected: false, …}
Three: {type: "Three", high: 79, medium: 0, low: 0, selected: false …}

我想检查键 selected 是否在所有对象中都具有值 false。如果是这样,那么我想触发另一种方法。

Object.entries(this.groupedObjects).map(([key, item]) => {
  if (/** Every objects key "selected" has the value "false" */) {
    // trigger next method
  }
});

我该如何解决这个问题或最好的方法是什么?

您可以使用数组 every 方法。 JS every 方法检查数组中的所有元素是否通过测试。如果每个选择都是假的,下面的代码将 return 为真,并且根据该结果您可以执行另一个函数。

const data = {
  One: { type: 'One', high: 5, medium: 0, low: 10, selected: false },
  Two: { type: 'Two', high: 56, medium: 0, low: 0, selected: false },
  Three: { type: 'Three', high: 79, medium: 0, low: 0, selected: false },
};

const ret = Object.keys(data).every((x) => !data[x].selected);
console.log(ret);

例如:

if(ret) {
  //execute next function
}