JS如何根据数组对象的callsign属性值获取对应的atis_code值
解决方法
你可以使用JavaScript数组原生的find()方法匹配指定条件的元素,该方法会返回数组中第一个满足判断规则的元素,完全适配你需要按callsign字段定位元素的需求。
完整实现代码
const atisData = JSON.parse(req.responseText); // 筛选callsign等于EFHK_ATIS的元素 const targetAtis = atisData.atis.find(item => item.callsign === "EFHK_ATIS"); // 增加判空逻辑,避免不存在对应数据时抛出异常 if (targetAtis) { document.getElementById("metar").innerHTML = JSON.stringify(targetAtis.atis_code); } else { // 可选:无匹配数据时的兜底展示 document.getElementById("metar").innerHTML = "未查询到EFHK_ATIS相关数据"; }
逻辑说明
find()方法会遍历atis数组,逐一对元素执行回调判断,匹配到符合条件的元素后会直接返回,不会遍历剩余元素,性能优于全量遍历的filter()方法,更适合你这种单条匹配的场景。- 如果你需要匹配所有callsign等于
EFHK_ATIS的元素(通常ATIS呼号唯一,该场景少见),可以将find替换为filter,返回结果会是所有匹配元素组成的数组。
内容的提问来源于stack exchange,提问作者Otto Tuhkunen
相关产品推荐
相关产品推荐

