Reputation: 149
I'm trying to loop and group through this object array using jQuery using my loop value.
I'd like the final object to look like this.
[ {'organization':'ABC Inc', 'address':'123 Front', 'city':'Wilmington','state':'NC','zip':'09900'}, {'organization':'Wonton Inc', 'address':'555 Front', 'city':'Jasper','state':'NC','zip':'09877'}, {'organization':'ABC Inc', 'address':'123 Front', 'city':'Wilmington','state':'NC','zip':'45345'} ]
Upvotes: 1
Views: 285
Reputation: 42352
Use a hash table
and #reduce()
function to extract the data structure required - see demo below:
var object = [{loop:0, key: 'organization', value:'ABC Inc'}, {loop:0,key:'address',value:'123 Front'}, {loop:0, key: 'city',value:'Wilmington'},{loop:0, key:'state',value:'NC'},{loop:0, key:'zip',value:'09900'}, {loop:1,key:'organization',value:'Wonton Inc'},{ loop:1, key:'address',value:'555 Front'}, {loop:1,key:'city',value:'Jasper'},{loop:1, key:'state',value:'NC'},{loop:1, key:'zip',value:'09877'}, {loop:1, key:'organization',value:'ABC Inc'},{loop:1, key:'address',value:'123 Front'},{loop:1, key:'city',value:'Wilmington'},{loop:1, key:'state',value:'NC'},{loop:1, key:'zip',value:'45345'}];
var result = object.reduce(function(hash){
return function(p,c) {
if(!hash[c.loop]) {
hash[c.loop] = {}
p.push(hash[c.loop]);
}
hash[c.loop][c.key] = c.value;
return p;
}
}(Object.create(null)), []);
console.log(result);
.as-console-wrapper{top:0;max-height:100%!important;}
Upvotes: 1