[英]Group json data by a property - vue.js
我有一个 JSON 我想重新排列我的数据,以便我可以按类别名称对所有项目进行分组。 这是我的数据。
[
{
"id":317,
"name":"Ingram's Camphor Cream",
"slug":null,
"product_category_id":15,
"industry_id":2,
"deleted_at":null,
"category":{
"id":15,
"name":"Skincare",
"slug":null,
"industry_id":2,
"deleted_at":null,
"sku_id":3,
"is_active":1
},
},
{
"id":323,
"name":"Zimgold",
"slug":null,
"product_category_id":2,
"industry_id":2,
"category":{
"id":2,
"name":"Cooking Oils",
"slug":null,
"industry_id":2,
"sku_id":2,
"is_active":1
}
}
]
我想要这样的结果:
[
'Skincare': [ {}],
'Cooking Oils': [{}]
]
先感谢您。 我将衷心感谢您的帮助。
您可以使用这样的减速器将产品数组简化为名称的 map 产品 arrays:
const grouped = products.reduce((grouped, product) => {
const key = product.category.name
// replace the array at [key] with a new one including the current element
return { ...grouped, [key]: (grouped[key]??[]).concat(product)}
}, {})
也许有一个更漂亮的方式,但这样的事情会奏效
var groupedData = {};
data.forEach(item => {
if (!groupedData[item.category.name]) {
groupedData[item.category.name] = [];
}
groupedData[item.category.name].push(item);
})
arr.map(item=>{
let key = item.category.name
return {[key]:item}
})
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.