2016-02-12 19 views
0

請幫我組反覆JSON數據,我有一個重複的JSON對象是這樣的:使用AngularJS

[{ 
    "nip": "6080022A", 
    "nama": "ASLAN PURNAMA", 
    "semester1_2012": null, 
    "semester2_2012": null, 
    "semester1_2013": null, 
    "semester2_2013": null, 
    "semester1_2014": null, 
    "semester2_2014": "Potensial", 
    "semester1_2015": null 
}, { 
    "nip": "6080022A", 
    "nama": "ASLAN PURNAMA", 
    "semester1_2012": null, 
    "semester2_2012": null, 
    "semester1_2013": null, 
    "semester2_2013": null, 
    "semester1_2014": null, 
    "semester2_2014": null, 
    "semester1_2015": "Potensial" 
}, { 
    "nip": "6080048A", 
    "nama": "NURHAYATI", 
    "semester1_2012": null, 
    "semester2_2012": null, 
    "semester1_2013": "Potensial", 
    "semester2_2013": null, 
    "semester1_2014": null, 
    "semester2_2014": null, 
    "semester1_2015": null 
}, { 
    "nip": "6080048A", 
    "nama": "NURHAYATI", 
    "semester1_2012": null, 
    "semester2_2012": null, 
    "semester1_2013": null, 
    "semester2_2013": "Potensial", 
    "semester1_2014": null, 
    "semester2_2014": null, 
    "semester1_2015": null 
}, { 
    "nip": "6080048A", 
    "nama": "NURHAYATI", 
    "semester1_2012": null, 
    "semester2_2012": null, 
    "semester1_2013": null, 
    "semester2_2013": null, 
    "semester1_2014": "Potensial", 
    "semester2_2014": null, 
    "semester1_2015": null 
}, { 
    "nip": "6080048A", 
    "nama": "NURHAYATI", 
    "semester1_2012": null, 
    "semester2_2012": null, 
    "semester1_2013": null, 
    "semester2_2013": null, 
    "semester1_2014": null, 
    "semester2_2014": "Potensial", 
    "semester1_2015": null 
}, { 
    "nip": "6080048A", 
    "nama": "NURHAYATI", 
    "semester1_2012": null, 
    "semester2_2012": null, 
    "semester1_2013": null, 
    "semester2_2013": null, 
    "semester1_2014": null, 
    "semester2_2014": null, 
    "semester1_2015": "Potensial" 
}] 

我想使用AngularJS要顯示的數值,而且我期待會像最終結果這樣的:

nip : 6080022A 
nama : ASLAN PURNAMA 
semester1_2012 : null 
semester2_2012 : null 
semester1_2013 : null 
semester2_2013 : null 
semester1_2014 : null 
semester2_2014 : Potensial 
semester1_2015 : Potensial 

nip : 6080022A 
nama : NURHAYATI 
semester1_2012 : null 
semester2_2012 : null 
semester1_2013 : Potensial 
semester2_2013 : Potensial 
semester1_2014 : Potensial 
semester2_2014 : Potensial 
semester1_2015 : Potensial 

我曾嘗試使用AngularJS獨特的過濾來格式化的結果,但結果只過濾「整容」和「名」

回答

0

請檢查該example(看看控制檯)。我用了很酷的庫linq.js。例如,以這種方式處理您的初始數組,然後使用帶ng-repeat的結果數組。

解決方案:

$(function(){ 
    var array = [{ 
    "nip": "6080022A", 
    "nama": "ASLAN PURNAMA", 
    "semester1_2012": null, 
    "semester2_2012": null, 
    "semester1_2013": null, 
    "semester2_2013": null, 
    "semester1_2014": null, 
    "semester2_2014": "Potensial", 
    "semester1_2015": null 
}, { 
    "nip": "6080022A", 
    "nama": "ASLAN PURNAMA", 
    "semester1_2012": null, 
    "semester2_2012": null, 
    "semester1_2013": null, 
    "semester2_2013": null, 
    "semester1_2014": null, 
    "semester2_2014": null, 
    "semester1_2015": "Potensial" 
}, { 
    "nip": "6080048A", 
    "nama": "NURHAYATI", 
    "semester1_2012": null, 
    "semester2_2012": null, 
    "semester1_2013": "Potensial", 
    "semester2_2013": null, 
    "semester1_2014": null, 
    "semester2_2014": null, 
    "semester1_2015": null 
}, { 
    "nip": "6080048A", 
    "nama": "NURHAYATI", 
    "semester1_2012": null, 
    "semester2_2012": null, 
    "semester1_2013": null, 
    "semester2_2013": "Potensial", 
    "semester1_2014": null, 
    "semester2_2014": null, 
    "semester1_2015": null 
}, { 
    "nip": "6080048A", 
    "nama": "NURHAYATI", 
    "semester1_2012": null, 
    "semester2_2012": null, 
    "semester1_2013": null, 
    "semester2_2013": null, 
    "semester1_2014": "Potensial", 
    "semester2_2014": null, 
    "semester1_2015": null 
}, { 
    "nip": "6080048A", 
    "nama": "NURHAYATI", 
    "semester1_2012": null, 
    "semester2_2012": null, 
    "semester1_2013": null, 
    "semester2_2013": null, 
    "semester1_2014": null, 
    "semester2_2014": "Potensial", 
    "semester1_2015": null 
}, { 
    "nip": "6080048A", 
    "nama": "NURHAYATI", 
    "semester1_2012": null, 
    "semester2_2012": null, 
    "semester1_2013": null, 
    "semester2_2013": null, 
    "semester1_2014": null, 
    "semester2_2014": null, 
    "semester1_2015": "Potensial" 
}];    
    var res = Enumerable.From(array).GroupBy(function (x) { return x.nip + '&' + x.nama;}).Select(function (x) { return { key: x.Key(), res:x.Aggregate(function(a,b){ 
    var res={}; 
    for(p in a) 
     if(p!= 'nip' && p != 'nama') 
      res[p]=a[p]; 
     for(p in b) 
     if(p!= 'nip' && p != 'nama' && a[p]==null && b[p]!=null) 
      res[p]=b[p];    

     return res; 
    }) } }).ToArray().map(function(x){ 
    x.res.nip=x.key.split('&')[0]; 
    x.res.nama=x.key.split('&')[1]; 
    return x.res; 
    }); 
    console.log(res); 
}) 
+0

哦哦,我的天哪......它的工作原理,我一直在尋找,因爲今天早上這個解決方案,謝謝斯拉瓦 –