如何编写while循环:当数组存在满足多属性条件的对象时执行操作
同时检查多属性条件的While循环实现
没问题,这事儿调整起来很简单~你只需要把Array.some()里的判断逻辑改成同时检查两个条件就行,这样循环就会在数组里存在至少一个颜色为蓝色且尺寸为小号的对象时持续运行,直到你把所有符合条件的对象都修改到不满足要求为止。
修改后的完整代码示例
let shirts = new Array(); let item1 = { "color": "blue", "size": "small" }; shirts.push(item1); // 可以再加几个测试用的对象,方便看效果 shirts.push({ "color": "blue", "size": "large" }); shirts.push({ "color": "red", "size": "small" }); // 循环条件:同时匹配color为blue且size为small while (shirts.some(e => e.color === "blue" && e.size === "small")) { // 找到第一个符合条件的对象并修改属性 const target = shirts.find(e => e.color === "blue" && e.size === "small"); if (target) { // 这里可以根据需求修改属性,比如把尺寸改成medium target.size = "medium"; // 或者修改颜色:target.color = "green"; console.log("修改了一个符合条件的衬衫"); } } console.log("循环结束,最终衬衫数组:", shirts);
关键逻辑说明
shirts.some(condition):这个方法会遍历数组,只要有一个元素满足括号里的条件,就返回true,循环继续执行;当所有元素都不满足条件时,返回false,循环终止。- 循环体里的
shirts.find(condition):用来定位第一个符合条件的对象,你可以在这里修改它的属性(比如改变尺寸或颜色),让它不再满足循环条件。如果数组里有多个符合条件的对象,你也可以用shirts.forEach()批量修改,完全看你的业务需求。
举个例子,如果数组里有3个蓝底小号的衬衫,每次循环修改一个,循环会执行3次,直到所有蓝底小号的衬衫都被改成其他尺寸/颜色,循环才会停止。
内容的提问来源于stack exchange,提问作者lastnoob
相关产品推荐
相关产品推荐

