如何在对象数组中筛选出拥有相同ID_OP属性值的对象?
按ID_OP筛选对象的解决方案
根据你提供的数组结构,每个元素的ID_OP属性嵌套在OPERACION对象下,以下是两种符合你需求的实现方式:
方式一:沿用你习惯的for循环写法
function filterByIDOp(targetIdOp) { for (var i = 0; i < objOperacion.length; i++) { // 提取当前元素的ID_OP值 const currentIdOp = objOperacion[i].OPERACION.ID_OP; if (targetIdOp === currentIdOp) { objOperacion[i].setStyle(styleWorking); console.log("SAME ID_OP"); } else { objOperacion[i].setStyle(style); console.log("DIFFERENT ID_OP"); } } }
方式二:使用数组forEach方法(更简洁)
function filterByIDOp(targetIdOp) { objOperacion.forEach(item => { if (item.OPERACION.ID_OP === targetIdOp) { item.setStyle(styleWorking); console.log("SAME ID_OP"); } else { item.setStyle(style); console.log("DIFFERENT ID_OP"); } }); }
关键说明
你之前的代码是匹配feature.properties.ID,而新需求要匹配的是每个数组元素直接下属的OPERACION.ID_OP,只要正确访问这个嵌套属性就能实现筛选逻辑。
内容的提问来源于stack exchange,提问作者Manuel Yerbes
相关产品推荐
相关产品推荐

