繁体   English   中英

按属性分组 json 数据 - vue.js

[英]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.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM