hakuna
hakuna

Reputation: 6701

Adding Dynamic elements/rows to multi dimensional Json array in Angularjs

I have a JSon object array that looks as below:

var myObject= [
{"name":'Tom', "city":'Chicago',"GroupCode":'1'}, 
{"name":'Harry', "city":'Wisconsin',"GroupCode":'1'}, 
{"name":'Rob', "city":'Los Angeles',"GroupCode":'2'}, 
{"name":'Peter', "city":'Seattle',"GroupCode":'2'}, 
{"name":'Dave', "city":'New York',"GroupCode":'3'}, 
{"name":'Steve', "city":'Boston',"GroupCode":'3}
];

I wanted to a add a new row with some sample values when ever the GroupCode is changing. My result shall look like :

var myObject= [
{"name":'Tom', "city":'Chicago',"GroupCode":'1'}, 
{"name":'Harry', "city":'Wisconsin',"GroupCode":'1'}, 
{"name":'--', "city":'--',"GroupCode":'--'}, 
{"name":'Rob', "city":'Los Angeles',"GroupCode":'2'}, 
{"name":'Peter', "city":'Seattle',"GroupCode":'2'}, 
{"name":'--', "city":'--',"GroupCode":'--'}, 
{"name":'Dave', "city":'New York',"GroupCode":'3'}, 
{"name":'Steve', "city":'Boston',"GroupCode":'3} 
]; 

How can i do that ? Please help !

Upvotes: 1

Views: 660

Answers (1)

Cyril Cherian
Cyril Cherian

Reputation: 32327

You can do it like this:

var myObject = [{
  "name": 'Tom',
  "city": 'Chicago',
  "GroupCode": '1'
}, {
  "name": 'Harry',
  "city": 'Wisconsin',
  "GroupCode": '1'
}, {
  "name": 'Rob',
  "city": 'Los Angeles',
  "GroupCode": '2'
}, {
  "name": 'Peter',
  "city": 'Seattle',
  "GroupCode": '2'
}, {
  "name": 'Dave',
  "city": 'New York',
  "GroupCode": '3'
}, {
  "name": 'Steve',
  "city": 'Boston',
  "GroupCode": '3'
}];
//store the first groupcode
var gc = myObject[0].GroupCode;
myObject.forEach(function(ob, index) {
  if (gc != ob.GroupCode) {
    gc = ob.GroupCode;
    //insert this object
    myObject.splice(index, 0, {
      "name": '--',
      "city": '--',
      "GroupCode": '--'
    });
  }

})
console.log(myObject)

working code here

Upvotes: 2

Related Questions