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

JavaScript 如何优化转换数据适配 Highcharts 的 map 函数写法?

优化方案

核心优化点

  • 原代码中map方法仅用来做遍历、手动push生成结果属于方法误用,map本身会返回新数组,直接用其返回值即可省略额外的临时数组变量
  • 省略不必要的中间对象声明,直接构造返回结果,逻辑更连贯简洁
  • 增加空输入的边界兼容,避免原始数据为空时报错

优化后代码

// 基础极简版本,适用于确定items非空的场景
const series = Object.keys(items[0]).map(key => ({
  name: key,
  data: items.map(item => item[key])
}))

如果需要兼容items为空数组的边界场景,可以增加兜底逻辑:

// 带边界兼容的版本
const series = items.length 
  ? Object.keys(items[0]).map(key => ({
      name: key,
      data: items.map(item => item[key])
    }))
  : []

转换效果

用你提供的示例数据转换后得到的结果完全匹配Highcharts要求的series格式:

[
  { name: 'hip', data: [40, 46] },
  { name: 'waist', data: [41, 47] },
  { name: 'neck', data: [42, 48] },
  { name: 'knee', data: [43, 49] },
  { name: 'arm', data: [44, 50] },
  { name: 'weight', data: [45, 51] }
]

内容的提问来源于stack exchange,提问作者sineverba

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.09.28 15:39:04