只要该语句在数组中存在具有某些属性值的对象,它就会执行某些操作

时间:2020-10-30 09:27:35

标签: javascript arrays object while-loop

我有一个简单的对象数组。

只要数组中有一个具有某些属性值的对象,我该如何做while语句呢?

let shirts = new Array();

let item1 = {
  "color": "blue",
  "size": "small"
}
shirts.push(item1);

while (shirts.some(e => e.color === "blue")) {
  // do something
}

因此,尽管shirts的商品具有蓝色且尺寸较小,但还是要做些事。

我找到了一些解决方案,但它们只检查一个值,我需要将其设为两个:

while (shirts.some(e => e.color === "blue")) {
      // do something
    }

这是一个while循环,因此我可以继续以编程方式修改值,直到最终不匹配为止。

2 个答案:

答案 0 :(得分:0)

while (shirts.some(e => e.color === 'blue' && e.size === 'small')) {
  // do something
}

while (shirts.filter(e => e.color === 'blue' && e.size === 'small').length > 0) {
  // do something
}

答案 1 :(得分:0)

最好定义您要引用的项目,这将有助于调试并在将来通过代码进行调试

let this_is_true = shirts.some(e => e.color === 'blue' && e.size === 'small');

while (this_is_true){
  // ..

  //re-check for every iteration
  this_is_true = shirts.some(e => e.color === 'blue' && e.size === 'small')
}