Javascript 如何通过将键值分组来创建多个数组?
我有一张物品清单Javascript 如何通过将键值分组来创建多个数组?,javascript,arrays,sorting,key,Javascript,Arrays,Sorting,Key,我有一张物品清单 存储=[{ “姓名”:“付款人身份”, “年份”:“2016年”, “重要性”:0.015 }, { “名称”:“ENTRILLO AS”, “年份”:“2017年”, “重要性”:0.432000000000000005 }, { “名称”:“ENTRILLO AS”, “年份”:“2017年”, “重要性”:0.432000000000000005 }] 通过这个数组,我希望创建一个新的数组,在一个列表中包含两个列表,我们按照名称键进行排序 列表=[ [{ “姓名”:“付
存储=[{
“姓名”:“付款人身份”,
“年份”:“2016年”,
“重要性”:0.015
}, {
“名称”:“ENTRILLO AS”,
“年份”:“2017年”,
“重要性”:0.432000000000000005
}, {
“名称”:“ENTRILLO AS”,
“年份”:“2017年”,
“重要性”:0.432000000000000005
}]
通过这个数组,我希望创建一个新的数组,在一个列表中包含两个列表,我们按照名称键进行排序
列表=[
[{
“姓名”:“付款人身份”,
“年份”:“2016年”,
“重要性”:0.015
}],
[{
“名称”:“ENTRILLO AS”,
“年份”:“2017年”,
“重要性”:0.432000000000000005
}, {
“名称”:“ENTRILLO AS”,
“年份”:“2017年”,
“重要性”:0.432000000000000005
}]
]
在javascript中有什么简单的方法可以做到这一点吗
我尝试过创建一组新数组并添加到其中,但是,我遇到了一个问题,我需要知道我之前有多少name元素,而我不一定知道
谢谢,如果这是个愚蠢的问题,我很抱歉 首先制作一个映射,将分组键映射到项目(我认为这也更容易使用)。在您的示例中,它是
name
。可以使用此映射创建嵌套数组:
const rawData=[
{
“姓名”:“付款人身份”,
“年份”:“2016年”,
“重要性”:0.015,
},
{
“名称”:“ENTRILLO AS”,
“年份”:“2017年”,
“重要性”:0.432000000000000005,
},
{
“名称”:“ENTRILLO AS”,
“年份”:“2017年”,
“重要性”:0.432000000000000005,
},
];
const companyToData=rawData.reduce((会计科目,项目)=>{
const foo=acc[item.name]?acc[item.name]:[];
返回{
…acc,
[项目名称]:[
……福,
项目
],
};
}, {});
常量数据=对象值(companyToData);
控制台日志(数据)代码>var list=storage.map(i=>[i])代码>看起来更像是你想按年份对它们进行分组。我会的,谢谢你。对于你的其他评论,是的,在这种情况下,我可以按年份排序,但通常情况下,我的情况下的年份并不总是与我想要的分组方式一致。