Javascript 多次使用Vue.JSON JSON分组数组
我有一个用于导入CSV文件的应用程序,然后将其转换为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
{
"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我想分组,我已经添加了一个包含我所能做的事情的输入(这是一个单独的分组)。至于输出,我已经尽了最大努力,弄清楚我是如何喜欢我的数据的。