2017-06-06 2 views
1

Ich habe 3 Sätze von JSON-DatenAngular Hinzufügen von Elementen aus mehreren Arrays in Json Objekt

data1 [{id:1, systemName: "foo", moreInfo: "blah}, 
     {id:2, systemName: "boo", moreInfo: "blahBlah}] 


data2 [{systemName: "foo",count: 21}, 
     {systemName: "boo",count: 454}] 

data3 [{systemName: "foo",count: 643}, 
     {systemName: "boo",count: 674}] 

, was ich verlangen, ist die Zählungen von Daten zu nehmen 2 und 3 und fügen Sie sie in ihre jeweiligen Objekte in data1 mit neuen Namen wie data2Count und Data3Count

so data1 würde wie folgt aussehen:

data1 [{id:1, systemName: "foo", moreInfo: "blah, data2Count: 21, data3Count: 643}, 
     {id:2, systemName: "boo", moreInfo: "blahBlah, data2Count: 454, data3Count: 674}] 

Zur Zeit kann ich dies nur erreichen:

data1 [{id:1, systemName: "foo", moreInfo: "blah"} 
     {id:2, systemName: "boo", moreInfo: "blahBlah"} data2Count: 454] 

Verwendung:

angular.forEach(data1, function(value1, key1) { 
    angular.forEach(data2, function(value0, key0) { 
     if (value1.systemName === value1.systemName) { 
      $scope.sysFlow.data2Count = value1.count 
     } 
    }) 
}) 

Antwort

1

Sie können Array#map verwenden, so etwas zu tun:

var data1 = [ 
 
    {id:1, systemName: "foo", moreInfo: "blah"}, 
 
    {id:2, systemName: "boo", moreInfo: "blahBlah"} 
 
    ] 
 

 

 
var data2 = [ 
 
    {systemName: "foo",count: 21}, 
 
    {systemName: "boo",count: 454} 
 
    ] 
 

 
var data3 = [ 
 
    {systemName: "foo",count: 643}, 
 
    {systemName: "boo",count: 674} 
 
    ] 
 
    
 
data1 = data1.map(function(obj) { 
 

 
    obj.data2Count = data2.filter(function(o) { 
 
    return o.systemName === obj.systemName 
 
    })[0].count; 
 

 
    obj.data3Count = data3.filter(function(o) { 
 
    return o.systemName === obj.systemName 
 
    })[0].count; 
 

 
    return obj; 
 
}) 
 

 
console.log(data1)

+1

Perfect, Dank sehr viel – H30

+0

mm @Tan paar Probleme, gut Es ist ein Problem mit unserer Chrome-Version, die wir nicht benutzen können '' '=>' '' Frontend (Doh) Wie bearbeite ich die Änderung th abo Ue regelmäßig '' Funktion '' '?? – H30

+0

@ H30 aktualisierte Antwort mit dem – tanmay

Verwandte Themen