javascript - 对json排序重组,如何用category.id重组(分类显示出来)
本文介绍了javascript - 对json排序重组,如何用category.id重组(分类显示出来)的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!
问题描述
问 题
json代码如下:
var dat = {
"data": [
{
"id": 2,
"seller_id": 1,
"name": "麻婆豆腐",
"category": {
"id": 1,
"seller_id": 1,
"name": "厨师推荐"
}
},
{
"id": 1,
"seller_id": 1,
"name": "回锅肉",
"category": {
"id": 2,
"seller_id": 1,
"name": "店长推荐"
}
},
{
"id": 3,
"seller_id": 1,
"name": "干锅鸡",
"shopping_num": 1,
"category": {
"id": 2,
"seller_id": 1,
"name": "店长推荐"
}
},
{
"id": 6,
"seller_id": 1,
"name": "油炸虾子",
"category": {
"id": 3,
"seller_id": 1,
"name": "招牌菜"
}
},
{
"id": 7,
"seller_id": 1,
"name": "碳烤火鸡",
"category": {
"id": 1,
"seller_id": 1,
"name": "海鲜"
}
}
]
}
category.id 或category.name 重组数据 做到数据分类显示
显示视图:
解决方案
用reduce,直接遍历,然后查找合并就好了。。。感觉是在帮你做作业。。。
function transform(data){
return data.reduce((prev, item)=>{
let id = item.category.id;
if(prev[id]) {
prev[id].items.push(item);
} else {
let { seller_id, name } = item.category;
prev[id] = {
seller_id,
name,
id,
items: [item]
}
}
return prev;
}, {});
}
transform(data.data);
输出的时这个样子:
这篇关于javascript - 对json排序重组,如何用category.id重组(分类显示出来)的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!
查看全文