JavaScript数组重构数据,数组转换成对象

在后端返回的数据中,可能不太满意,所以需要自己重构数据。

原始数据

javascript 复制代码
let arr = [
{title:"光头强",age:18,id:"0"},
{title:"孙悟空",age:18,id:"9"},
{title:"熊大",age:18,id:"0"},
{title:"猪八戒",age:18,id:"9"},
{title:"白龙马",age:18,id:"9"},
{title:"小猪佩奇",age:18,id:"4"},
{title:"熊二",age:18,id:"0"},
{title:"乔治",age:18,id:"4"},
{title:"小羊苏西",age:18,id:"4"}
]

现在要重构数据相同id的,放在同一个对象中,id作为key,其他作为value

方法一
javascript 复制代码
// 对数据进行转换
const testGroup = {}
// 思路一:两次循环
for(let item of arr) {
  testGroup [item.id] = []
}

for(let item of arr) {
  const valueArray = testGroup [item.id]
  valueArray.push(item)
}

打印结果

方法二
javascript 复制代码
// 思路二: 一次循环
// 对数据进行转换
const testGroup = {}
for (const item of arr) {
  let valueArray = testGroup [item.id]
  if (!valueArray) {
    valueArray = []
    swipeGroup[item.id] = valueArray
  }
  valueArray.push(item)
}

打印结果

大概就是这样,数据重构

相关推荐
摸鱼的春哥3 小时前
春哥的Agent通关秘籍13:实现RAG查询
前端·javascript·后端
明月_清风3 小时前
滚动锁定:用户向上翻看历史时,如何阻止 AI 新消息把它“顶”下去?
前端·javascript
明月_清风3 小时前
当高阶函数遇到 AI:如何自动化生成业务层面的逻辑拦截器
前端·javascript·函数式编程
从文处安17 小时前
「九九八十一难」组合式函数到底有什么用?
前端·vue.js
前端Hardy17 小时前
面试官:JS数组的常用方法有哪些?这篇总结让你面试稳了!
javascript·面试
yuki_uix17 小时前
Props、Context、EventBus、状态管理:组件通信方案选择指南
前端·javascript·react.js
全栈老石18 小时前
手写无限画布4 —— 从视觉图元到元数据对象
前端·javascript·canvas
用户114896694410518 小时前
VUE3响应式原理——从零解析
vue.js
用户830407130570118 小时前
SPA 首屏加载速度慢怎么解决?
vue.js·webpack
一枚前端小姐姐18 小时前
低代码平台表单设计系统技术分析(实战三)
前端·vue.js·低代码