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

如何用Lodash将带索引后缀的对象转换为分组对象数组

用Lodash重组带索引后缀的对象为结构化数组

给定带索引后缀的原始对象:

const object = { 'id-0': 12, 'id-1': 19, 'volume-0': 13, 'volume-1': 10, 'price-0': 9, 'price-1': 19 }

需要将其转换为按索引分组的结构化对象数组:

const newArray = [ { id:12, volume: 13, price: 9 }, { id:19, volume: 10, price: 19 } ]

实现方案

使用Lodash的_.transform方法可以高效完成这个转换,它允许我们遍历对象时累积生成目标结构:

const _ = require('lodash');

const object = { 'id-0': 12, 'id-1': 19, 'volume-0': 13, 'volume-1': 10, 'price-0': 9, 'price-1': 19 };

const newArray = _.transform(object, (result, value, key) => {
  // 拆分键名,分离属性名与索引
  const [propName, index] = key.split('-');
  // 初始化对应索引的空对象(如果不存在)
  result[index] = result[index] || {};
  // 为对应索引的对象赋值属性
  result[index][propName] = value;
}, []);

代码说明

  • _.transform以原始对象为遍历源,空数组作为结果初始值
  • 对每个键名执行split('-'),拆分出属性名(如id、volume)和索引(如0、1)
  • 检查结果数组对应索引位置是否已有对象,无则创建空对象
  • 将当前键值对映射到对应索引的对象中,最终得到目标数组结构

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.24 00:42:29