【发布时间】:2018-02-20 09:16:08
【问题描述】:
最初,我有这个数组:
[{
"vendorid": 1,
"vendorname": "Vendor1",
"maxfilelimit": 2,
"uploadfilename": "Voice1.xlsx"
},
{
"vendorid": 1,
"vendorname": "Vendor1",
"maxfilelimit": 2,
"uploadfilename": "Ven1_Voice.xlsx"
},
{
"vendorid": 2,
"vendorname": "Vendor2",
"maxfilelimit": 2,
"uploadfilename": "Voice2.xlsx"
},
{
"vendorid": 2,
"vendorname": "Vendor2",
"maxfilelimit": 2,
"uploadfilename": "Ven2_Voice.xlsx"
}]
我希望数组中的文件名没有重复记录。因此,我希望输出类似于以下内容:
[{
"vendorid": 1,
"vendorname": "Vendor1",
"maxfilelimit": 2,
"uploadfilename": ["Voice1.xlsx", "Ven1_Voice.xlsx"]
}, {
"vendorid": 2,
"vendorname": "Vendor2",
"maxfilelimit": 2,
"uploadfilename": ["Voice2.xlsx", "Ven2_Voice.xlsx"]
}]
我找到了一些解决方案,例如 d3.js、alaSQL,但没有得到预期的输出
【问题讨论】:
-
array.reduce是你的朋友。 -
谢谢!你能解释一下我如何在我的场景中使用它吗?
-
视情况而定。您的数据有哪些变化,哪些保持不变?当它改变时,什么是重要的。我可以看到你需要一个文件名数组......还有什么?
-
您是说项目应该根据前三个字段中的所有三个字段都相同进行分组吗?可能有助于更新问题中的示例输入,使其在输出中包含多个记录。
-
是的,你没看错!我不会。可能包含具有多个文件名的不同
vendors的记录。所以,我想对供应商的文件进行分组。其中vendorid、vendorname、maxfilelimit对于特定供应商是相同的。
标签: javascript alasql