JSon 数组动态列填充 AngularJs

JSon array dynamic column filling AngularJs

本文关键字:填充 AngularJs 动态 数组 JSon      更新时间:2023-09-26

我有一个这样的对象:

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}
];

转换为

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} 
    ]; 

使用以下代码在组码更改时在两者之间添加新记录:

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": '--'
    });
  }
})

如何在此处使键/列动态?

myObject.splice(index, 0, {
          "name": '--',
          "city": '--',
          "GroupCode": '--'
        });
你可以

这样做:

myObject.forEach(function(ob, index) {
  if (gc != ob.GroupCode) {
    gc = ob.GroupCode;
    keys = Object.keys(ob);
    var a = {};
    //dynamically creating keys in object
    a[keys[0]] = '--'
    a[keys[1]] = '--'
    a[keys[2]] = '--'
    //insert this object
    myObject.splice(index, 0, a);
  }
})

工作代码在这里

或者你也可以这样做,使其更具活力。

myObject.forEach(function(ob, index) {
  if (gc != ob.GroupCode) {
    gc = ob.GroupCode;
    keys = Object.keys(ob);
    var a = {};
    //iterate over  keys and make object
    keys.forEach(function(key){
      a[key] = '--'
      a[key] = '--'
      a[key] = '--'
    })
    //insert this object
    myObject.splice(index, 0, a);
  }
})

工作代码在这里