我有一個 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': [{}]
]
先感謝您。我將衷心感謝您的幫助。
uj5u.com熱心網友回復:
您可以使用如下的 reducer 將產品陣列縮減為名稱到產品陣列的映射:
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)}
}, {})
uj5u.com熱心網友回復:
也許有一種更漂亮的方式,但這樣的事情會奏效
var groupedData = {};
data.forEach(item => {
if (!groupedData[item.category.name]) {
groupedData[item.category.name] = [];
}
groupedData[item.category.name].push(item);
})
uj5u.com熱心網友回復:
arr.map(item=>{
let key = item.category.name
return {[key]:item}
})
轉載請註明出處,本文鏈接:https://www.uj5u.com/houduan/371499.html
標籤:javascript Vue.js
