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 小时前
移动端滑动手势冲突:overflow: auto导致外层横向滑动失效
前端·javascript·css·vue.js·html
默_笙5 小时前
🎃 前端学了 Next.js,后端该学啥?NestJS 就是 Node 版的蜜雪冰城
前端·javascript
OCR_133716212755 小时前
从模板匹配到AI泛化识别:文本抽取如何重构护照阅读器落地生态
人工智能·重构
এ慕ོ冬℘゜6 小时前
navigator 导航对象 BOM制作方法
javascript
kyriewen9 小时前
面试官让我用 AI 重构一个 8 年陈的 React 组件——他说他不看代码,只看我会不会拆
前端·javascript·面试
Jacky199910 小时前
Electron + Vue 3 桌面打字游戏实战:从 VSCode 扩展到独立应用的架构改造
javascript
用户500937683903910 小时前
热敏小票 Web 打印:我在 58/80mm 上折腾的两周
前端·vue.js
柚yuzumi11 小时前
别再猜 this:先看它属于谁,再看它指向谁
前端·javascript
汉堡大王952711 小时前
面试必考:手写代码 new 做了什么?从原理到实现全解析
前端·javascript·面试
BillKu11 小时前
TypeScript中,字符串字面量联合类型(Union Type)、enum的用法说明
前端·javascript·typescript