如何从指定JSON响应中提取total_electricity_generated生成JS数组
提取JSON中
total_electricity_generated值生成JS数组 没问题,这里有几种简洁实用的方式来实现你的需求:
方法一:使用Object.values() + map()(推荐)
这是最直接高效的方案,先把JSON对象里的所有逆变器实例提取为数组,再映射出目标字段的值:
// 你的原始JSON响应数据 const meteoData = { "meteo_inverter_analysis": { "Id93922.1": { "inverter_id": "Id93922.1", "total_electricity_generated": 1567.7910000000002 }, "Id93922.2": { "inverter_id": "Id93922.2", "total_electricity_generated": 1468.4869999999999 }, "Id93922.3": { "inverter_id": "Id93922.3", "total_electricity_generated": 498.7319999999999 }, "Id93922.4": { "inverter_id": "Id93922.4", "total_electricity_generated": 461.8369999999999 } } }; // 提取目标值生成数组 const electricityValues = Object.values(meteoData.meteo_inverter_analysis) .map(inverter => inverter.total_electricity_generated); console.log(electricityValues); // 输出: [1567.7910000000002, 1468.4869999999999, 498.7319999999999, 461.8369999999999]
方法二:遍历对象键值对(兼容旧环境)
如果需要支持不兼容Object.values()的旧浏览器,可以用Object.keys()手动遍历:
const electricityValues = []; const inverters = meteoData.meteo_inverter_analysis; for (const key of Object.keys(inverters)) { electricityValues.push(inverters[key].total_electricity_generated); } console.log(electricityValues); // 输出和上面一致
额外容错提示
如果担心部分逆变器对象可能缺失total_electricity_generated字段,可以在映射时添加兜底处理:
const electricityValues = Object.values(meteoData.meteo_inverter_analysis) .map(inverter => inverter.total_electricity_generated ?? 0); // 用0替代缺失值,可根据需求调整
内容的提问来源于stack exchange,提问作者Alauddin Ahmed
相关产品推荐
相关产品推荐

