Javascript 多次使用Vue.JSON JSON分组数组

Javascript 多次使用Vue.JSON JSON分组数组,javascript,arrays,vue.js,Javascript,Arrays,Vue.js,我有一个用于导入CSV文件的应用程序,然后将其转换为JSON JSON输出如下所示 { "Class": "Gecultiveerde paddestoelen", "Soort": "Shii-take", "Sortering": "Medium", "LvH": "SP", "Omschrijving": "SHIITAKE MEDIM STEMLESS unclosed", "Trade unit composition": "8 x 150gr", "Pun

我有一个用于导入CSV文件的应用程序,然后将其转换为JSON

JSON输出如下所示

{
  "Class": "Gecultiveerde paddestoelen",
  "Soort": "Shii-take",
  "Sortering": "Medium",
  "LvH": "SP",
  "Omschrijving": "SHIITAKE MEDIM STEMLESS unclosed",
  "Trade unit composition": "8 x 150gr",
  "Punnet type": "CARTON",
  "CONTAINER BOX": "Multicrate (30x40x11)",
  "Price (/box)": "10",
  "Amount (container box) per Pallet / Europallet \r": "200 / 160\r"
}
控制台日志输出

{
  "Class": "Gecultiveerde paddestoelen",
  "Soort": "Shii-take",
  "Sortering": "Medium",
  "LvH": "SP",
  "Omschrijving": "SHIITAKE MEDIM STEMLESS unclosed",
  "Trade unit composition": "8 x 150gr",
  "Punnet type": "CARTON",
  "CONTAINER BOX": "Multicrate (30x40x11)",
  "Price (/box)": "10",
  "Amount (container box) per Pallet / Europallet \r": "200 / 160\r"
}

我需要在类>Soort>分类上分组,我不知道如何在VUE/JS中进行分类


我可以像这样分组

在方法中:

groupBy: function (array, key){
  const result = {};
   array.forEach(item => {
    if (!result[item[key]]){
      result[item[key]] = []
    }
    result[item[key]].push(item)
   });
  return result
},
groups() {
  return this.groupBy(this.parse_csv, 'Class');
},
计算:

groupBy: function (array, key){
  const result = {};
   array.forEach(item => {
    if (!result[item[key]]){
      result[item[key]] = []
    }
    result[item[key]].push(item)
   });
  return result
},
groups() {
  return this.groupBy(this.parse_csv, 'Class');
},
在SQL中,这样做非常容易(dbfiddle中包含所有JSON数据)

预期输出如下所示

显然,在做了谷歌搜索和研究之后,我偶然发现了这一点。
但是,我无法在VUE中实现这一点,因为这是一个简单的JS,这很可能是我对JS不太熟悉的一个错误,但我希望对此有一些额外的了解。

您可以获得一个键数组,而不是使用单个
键作为参数。然后根据由
|
分隔的每个键的值创建一个唯一键

groupBy:function(数组、键){
const result={};
array.forEach(项=>{
//获取一个值数组,并用|分隔符将它们连接起来
const key=keys.map(k=>item[k]).join(“|”);
//在结果中使用该唯一键
如果(!结果[键]){
结果[键]=[]
}
结果[键]。推送(项)
});
返回结果
}
对于您发布的对象,唯一键如下所示:

Gecultiveerde paddestoelen|Shii-take|Medium
下面是一个片段:

函数分组依据(数组、键){
const result={};
array.forEach(项=>{
const key=keys.map(k=>item[k]).join(“|”);
如果(!结果[键]){
结果[键]=[]
}
结果[键]。推送(项)
});
返回结果
}
const input=[{Class:“Gecultiveerde Paddestelen”,Soort:“Shii take”,分拣:“Middle”,LvH:“SP”,Omschrijving:“SHIITAKE MEDIM STEMLESS unclosed”,“贸易单位构成”:“8 x 150gr”,“Punnet类型”:“纸箱”,“集装箱箱”:“Multicrate(30x40x11)”,“价格(/箱)”:“10”,“每个托盘/欧式集装箱箱的数量”;“200/160\r”};

log(groupBy(input,['Class','Soort','sortring'])
您可以获取密钥数组,而不是使用单个
键作为参数。然后根据由
|
分隔的每个键的值创建一个唯一键

groupBy:function(数组、键){
const result={};
array.forEach(项=>{
//获取一个值数组,并用|分隔符将它们连接起来
const key=keys.map(k=>item[k]).join(“|”);
//在结果中使用该唯一键
如果(!结果[键]){
结果[键]=[]
}
结果[键]。推送(项)
});
返回结果
}
对于您发布的对象,唯一键如下所示:

Gecultiveerde paddestoelen|Shii-take|Medium
下面是一个片段:

函数分组依据(数组、键){
const result={};
array.forEach(项=>{
const key=keys.map(k=>item[k]).join(“|”);
如果(!结果[键]){
结果[键]=[]
}
结果[键]。推送(项)
});
返回结果
}
const input=[{Class:“Gecultiveerde Paddestelen”,Soort:“Shii take”,分拣:“Middle”,LvH:“SP”,Omschrijving:“SHIITAKE MEDIM STEMLESS unclosed”,“贸易单位构成”:“8 x 150gr”,“Punnet类型”:“纸箱”,“集装箱箱”:“Multicrate(30x40x11)”,“价格(/箱)”:“10”,“每个托盘/欧式集装箱箱的数量”;“200/160\r”};

log(groupBy(输入,['Class','Soort','sortring'])
您想要排序还是分组?该问题用于分组,但您添加的答案链接用于排序。plaese,添加一个包含输入和预期输出的示例。@AZ_u我想分组,我已经添加了一个包含我所能做的事情的输入(这是一个单独的分组)。至于输出,我已经尽力弄清楚我对数据的看法。你想排序还是分组?该问题用于分组,但您添加的答案链接用于排序。plaese,添加一个包含输入和预期输出的示例。@AZ_u我想分组,我已经添加了一个包含我所能做的事情的输入(这是一个单独的分组)。至于输出,我已经尽了最大努力,弄清楚我是如何喜欢我的数据的。