I have an array of long data I have use this array in node js
............................ Input......................................................
[ { Id: 1, Name: 'Red', optionName: 'Color' },
{ Id: 2, Name: 'Yellow', optionName: 'Color' },
{ Id: 3, Name: 'Blue', optionName: 'Color' },
{ Id: 4, Name: 'Green', optionName: 'Color' },
{ Id: 7, Name: 'Black', optionName: 'Color' },
{ Id: 8, Name: 'S', optionName: 'Size' },
{ Id: 11, Name: 'M', optionName: 'Size' },
{ Id: 12, Name: 'L', optionName: 'Size' },
{ Id: 13, Name: 'XL', optionName: 'Size' },
{ Id: 14, Name: 'XXL', optionName: 'Size' } ]
I have will group by optionName and doing two row in main array like..
........................Ouput ........................
[ {Name:'Color',Data:[{Id: 1, Name: 'Red'},
{Id: 2, Name: 'Yellow'},
{Id: 3, Name: 'Blue'},
{Id: 4, Name: 'Green'},
{Id: 7, Name: 'Black'}] },
{ Name:'Size',Data:[{Id: 8, Name: 'S'},
{ Id: 11, Name: 'M',},
{ Id: 12, Name: 'L',},
{ Id: 13, Name: 'XL'},
{ Id: 14, Name: 'XXL'}]
}]
Any one help me . how do it in java-script or node js ..

Surendra KandiraPosted Jan 16, 2016, 6:02 AM
{ Id: 1, Name: 'Red', optionName: 'Color' },
{ Id: 2, Name: 'Yellow', optionName: 'Color' },
{ Id: 3, Name: 'Blue', optionName: 'Color' },
{ Id: 4, Name: 'Green', optionName: 'Color' },
{ Id: 7, Name: 'Black', optionName: 'Color' },
{ Id: 8, Name: 'S', optionName: 'Size' },
{ Id: 11, Name: 'M', optionName: 'Size' },
{ Id: 12, Name: 'L', optionName: 'Size' },
{ Id: 13, Name: 'XL', optionName: 'Size' },
{ Id: 14, Name: 'XXL', optionName: 'Size' } ];
var newArr = [],
Keys = {},
newItem, i, j, cur;
for (i = 0, j = arr.length; i < j; i++) {
cur = arr[i];
if (!(cur[key] in Keys)) {
Keys[cur[key]] = { type: cur[key], data: [] };
newArr.push(Keys[cur[key]]);
}
Keys[cur[key]].data.push({Id:cur.Id,Name:cur.Name});
}
return newArr;
var resulr= groupBy(Data, 'optionName');