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
相关产品推荐
相关产品推荐

