I have a array of object that looks like the following.
[
{"rel_id": 1,"forward_flag": true,"asset_id":5,},
{"rel_id": 1,"forward_flag": true,"asset_id":8},
{"rel_id": 1,"forward_flag": false,"asset_id":3},
{"rel_id": 2,"forward_flag": true,"asset_id":5,},
{"rel_id": 2,"forward_flag": true,"asset_id":7,},
{"rel_id": 2,"forward_flag": false,"asset_id":9,}
]
I'm trying to group the object based on the properties rel_id and forward_flag . For those objects whose rel_id and forward_flag are same , I'm trying to create an array of asset_id values and make a new object.
So once processed end result will look like
[
{"rel_id":1,"forward_flag":true,"asset_id":[5,8]},
{"rel_id":1,"forward_flag":false,asset_id:[3]},
...
]
I have tried to achieve the same using jQuery like this.
preData.forEach(function(item){
var first = item;
preData.forEach(function(compare){
if(compare.rel_id != first.rel_id || compare.forwardFlag!= first.forwardFlag || compare.asset_id != first.assetid) //to make sure same item is not compared
{
if(compare.rel_id == first.rel_id && compare.forwardFlag == first.forwardFlag)
{
//do something here
}
}
})
})
where preData is the array of objects. I'm stuck now, and not clear what to do next. Are there any easier ways to achieve this?
rel_idandforward_flagare going to be same one is boolean and one is number