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)
}

打印结果

大概就是这样,数据重构

相关推荐
同学807966 分钟前
🔥🔥高效易用的 Vue3 公告滚动组件:打造丝滑的内容滚动体验(附源码)
前端·vue.js
编程修仙7 分钟前
第二篇 Vue指令
前端·javascript·vue.js·前端框架
LFly_ice17 分钟前
Next-4-路由导航
开发语言·前端·javascript
chilavert31818 分钟前
技术演进中的开发沉思-267 Ajax:拖放功能
前端·javascript·ajax
守护砂之国泰裤辣20 分钟前
el-select 选项偏移 到左边 左上角
前端·javascript·vue.js
软件开发技术深度爱好者1 小时前
轻量级数学符号点击复制工具HTML版
javascript·html5
全栈陈序员1 小时前
说说你对 Vue 的理解
前端·javascript·vue.js·学习·前端框架
WebRuntime1 小时前
问世间,exe是何物?直教AI沉默、Web寡言(4)
javascript·c#·.net·web
武昌库里写JAVA1 小时前
vue+iview+node+express实现文件上传,显示上传进度条,实时计算上传速度
java·vue.js·spring boot·后端·sql
自由与自然1 小时前
实现类似van-dialog自定义弹框
前端·javascript·html