You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何从指定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

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.05.20 10:21:33