内容简介:在工作中我们往往可能会遇到无限级别的分类等等的需求,往往后端返回的数据结构可能不是我们想要的数据结构,所以我们来看怎么进行处理我们看到上面已经有转换好了的JSON树形结构,那么我们如何把上面的结构反推回来呢利用上面的代码,我们就可以轻松的转换这两种数据结构~ 如果大佬们有更好的方法,希望可以发出来一起探讨~
在工作中我们往往可能会遇到无限级别的分类等等的需求,往往后端返回的数据结构可能不是我们想要的数据结构,所以我们来看怎么进行处理
扁平数据结构转换为JSON树型结构
[ {id: 1, title: "解忧杂货铺1", parent_id: 0}, {id: 2, title: '解忧杂货铺2', parent_id: 0}, {id: 3, title: '解忧杂货铺2-1', parent_id: 2}, {id: 4, title: '解忧杂货铺3-1', parent_id: 3}, {id: 5, title: '解忧杂货铺4-1', parent_id: 4}, {id: 6, title: '解忧杂货铺2-2', parent_id: 2}, ] 复制代码
代码
function fn(data, pid) { let result = [], temp; for (let i = 0; i < data.length; i++) { if (data[i].pid === pid) { let obj = {"title": data[i].title,"pid": data[i].pid,"id": data[i].id}; temp = fn(data, data[i].id); if (temp.length > 0) { obj.children = temp; } result.push(obj); } } return result; } let returnTree = fn(flatArr,0); console.log(returnTree); 复制代码
输出结果
[ {id: 1, title: '解忧杂货铺1', pid: 0}, { id: 2, title: '解忧杂货铺2', pid: 0, children: [ {id: 6, title: '解忧杂货铺4-2', pid: 2}, { id: 3, title: '解忧杂货铺2-1', pid: 2, children: [ { id: 4, title: '解忧杂货铺3-1', pid: 3, children: [ {id: 5, title: '解忧杂货铺4-1', pid: 4}, ] }, ] }, ] } ]; 复制代码
JSON树型结构转换扁平结构
我们看到上面已经有转换好了的JSON树形结构,那么我们如何把上面的结构反推回来呢
代码
function flatten(data) { return data.reduce((arr, {id, title, pid, children = []}) => arr.concat([{id, title, pid}], flatten(children)), []); } let flatArr = flatten(JsonTree); console.log(flatArr) 复制代码
输出结果
[ {id: 1, title: '解忧杂货铺1', pid: 0}, {id: 2, title: '解忧杂货铺2', pid: 0}, {id: 3, title: '解忧杂货铺2-1', pid: 2}, {id: 4, title: '解忧杂货铺3-1', pid: 3}, {id: 5, title: '解忧杂货铺4-1', pid: 4}, {id: 6, title: '解忧杂货铺4-2', pid: 2}, ] 复制代码
结语
利用上面的代码,我们就可以轻松的转换这两种数据结构~ 如果大佬们有更好的方法,希望可以发出来一起探讨~
以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持 码农网
猜你喜欢:- JS数组专题1️⃣ ➖ 数组扁平化
- 扁平化数组的几种方法
- 时尚高端多用途的扁平化banner海报着陆页插画设计模板-26
- C语言指针数组和数组指针
- 数组 – 如何在Swift中将数组拆分成两半?
- 菜鸡的算法修炼:数组(旋转数组的最小数字)
本站部分资源来源于网络,本站转载出于传递更多信息之目的,版权归原作者或者来源机构所有,如转载稿涉及版权问题,请联系我们。
The Filter Bubble
Eli Pariser / Penguin Press / 2011-5-12 / GBP 16.45
In December 2009, Google began customizing its search results for each user. Instead of giving you the most broadly popular result, Google now tries to predict what you are most likely to click on. Ac......一起来看看 《The Filter Bubble》 这本书的介绍吧!