我有一个简单的对象数组。
只要数组中有一个具有某些属性值的对象,我该如何做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循环,因此我可以继续以编程方式修改值,直到最终不匹配为止。
答案 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')
}