JavaScript
_.groupByMulti = function (obj, values, context) {
if (!values.length)
return obj;
var byFirst = _.groupBy(obj, values[0], context),
rest = values.slice(1);
for (var prop in byFirst) {
byFirst[prop] = _.groupByMulti(byFirst[prop], rest, context);
}
return byFirst;
};
document.write(JSON.stringify(
_.groupByMulti(getProperties(), ['City', 'category'])
, null, 4));
function getProperties() {
var inputArray=[
{empId:1,empName:"Sanjana",Dept:"IT",City:"Hyderabad",EmailId:"[email protected]"},
{empId:2,empName:"Sandeep",Dept:"IT",City:"Calcutta",EmailId:"[email protected]"},
{empId:3,empName:"Raghu",Dept:"IT",City:"Delhi",EmailId:"[email protected]"},
{empId:4,empName:"Sanjana",Dept:"IT",City:"Calcutta",EmailId:"[email protected]"},
{empId:5,empName:"Ranjan",Dept:"IT",City:"Calcutta",EmailId:"[email protected]"},
{empId:6,empName:"Soumya",Dept:"IT",City:"Pune",EmailId:"[email protected]"},
{empId:7,empName:"Sanjana",Dept:"IT",City:"Hyderabad",EmailId:"[email protected]"},
{empId:8,empName:"Savithri",Dept:"IT",City:"Hyderabad",EmailId:"[email protected]"},
{empId:9,empName:"Nilesh",Dept:"IT",City:"Pune",EmailId:"[email protected]"},
{empId:10,empName:"Sanjana",Dept:"IT",City:"Hyderabad",EmailId:"[email protected]"},
{empId:11,empName:"Jitendra",Dept:"IT",City:"Pune",EmailId:"[email protected]"},
{empId:12,empName:"Sankeertana",Dept:"IT",City:"Hyderabad",EmailId:"[email protected]"}
]
}