-1
这是我的一些操作后的回应。基于empid,我想分组区,产品,并获得短信和WhatsApp的数量。如何在JavaScript中对一些常用属性进行分组?
[
{
"_id": {
"empid": "sindhu",
"district": "Hyderabad",
"product": "Fair Fertilizers"
},
"sms": 1
},
{
"_id": {
"empid": "nagaraju",
"district": "Guntur",
"product": "Fair Fertilizers"
},
"sms": 2
},
{
"_id": {
"empid": "sindhu",
"district": "Hyderabad",
"product": "Fair Fertilizers"
},
"whatsapp": 2
},
{
"_id": {
"empid": "sindhu",
"district": "Krishna",
"product": "Fair Fertilizers"
},
"whatsapp": 2
}
]
我希望上述格式的数据如下所示。
[
{
"sindhu":[
{
"district": "Hyderabad",
"product": "Fair Fertilizers",
"sms": 1,
"whatsapp": 2
},
{
"district": "Krishna",
"product": "Fair Fertilizers",
"whatsapp": 2
},
]
},
{
"nagaraju" : [
{
"district": "Guntur",
"product": "Fair Fertilizers",
"sms": 2
}
]
}
]
为了得到这样的结果,我尝试了下面的代码。但我没有明白。
var groups = Object.create(null);
for (var i = 0; i < allTools.length; i++) {
var item = allTools[i];
if(!groups[item._id]) {
groups[item._id] = [];
}
groups[item._id].push({
district: item.district,
product: item.product,
sms: item.sms,
whatsapp: item.whatsapp,
mailing: item.mailing,
telecalling: item.telecalling,
enquiry: item.enquiry
});
}
var data = [];
for (var x in groups) {
var obj = {};
obj[x] = groups[x];
data.push(obj);
}
的可能的复制[什么是GROUPBY对象的JavaScript的阵列上的最有效的方法?(https://stackoverflow.com/questions/14446511/what-is-the最有效的方法,在一个对象上的一个javascript对象数组) – Rajesh
请分享一些想法和你已经尝试过。 –
@NinaScholz,我编辑了这个问题。请考虑一下。 –