2017-06-08 5 views
-2
"bills": [ 
      { 
      "refNo": 17, 
      "billDate": "1-apr-2016", 
      "dueDate": "30-apr-2016", 
      "pendingAmount": 4500, 
      "overdueDays": 28 
      }, 
      { 
      "refNo": 20, 
      "billDate": "15-apr-2016", 
      "dueDate": "3-may-2016", 
      "pendingAmount": 56550, 
      "overdueDays": 15 
      } 
     ] 

Ich möchte "pendingAmount" -Feld summieren. Es sollte wie pendingAmount zurückkehren werden: 61050Wie summiere Wert von zwei Json-Objektschlüssel?

+1

Was haben Sie versucht? Wird der JSON bereits analysiert? Wissen Sie, wie Sie Eigenschaften eines Javascript-Objekts erhalten? – Carcigenicate

Antwort

1

Sie Array#map verwenden können und dann Array#reduce Ihr Objekt zu glätten und dann das Ergebnis der Karte zusammenzufassen:

bills.map(bill => bill.pendingAmount).reduce((acc, bill) => bill + acc); 

hier ist ein Ausschnitt:

var bills = [ 
 
      { 
 
      "refNo": 17, 
 
      "billDate": "1-apr-2016", 
 
      "dueDate": "30-apr-2016", 
 
      "pendingAmount": 4500, 
 
      "overdueDays": 28 
 
      }, 
 
      { 
 
      "refNo": 20, 
 
      "billDate": "15-apr-2016", 
 
      "dueDate": "3-may-2016", 
 
      "pendingAmount": 56550, 
 
      "overdueDays": 15 
 
      } 
 
     ]; 
 
var res = bills.map(bill => bill.pendingAmount).reduce((acc, bill) => bill + acc); 
 
console.log(res)

Hoffe, dass es hilft,

Mit freundlichen Grüßen,

0

Sie das folgende Snippet verwenden:

var sum = JSON.parse(bills).reduce(function(acc, val){ 
    return acc.pendingAmount + val.pendingAmount; 
}, {pendingAmount: 0}); 

verwendet es die array.prototype.reduce() Funktion auf dem geparsten JSON. Das zweite Argument der reduzieren, ist der Anfangswert für die Funktion reduzieren geben

+0

Könnte dieser Code sein, um das Problem zu lösen.Fügen Sie die richtige Beschreibung in Ihre Antwort ein. – NarendraR

0

verwenden:

let sum, billsPOJO; 

billsPOJO = YOURJSON.bills; 

sum = 0; 

for (let i = 0; billsPOJO.length; i++) { 
sum += billsPOJO[i].pendingAmount; 
} 
0

Ein Einzeiler mit einigen ES2015 Destrukturierung:

json.bills.reduce(({pendingAmount: a}, {pendingAmount: b})=> a+b) 
0

Die verringern() Methode wendet eine Funktion gegen eine Akkumulator und jedes Element im Array (von links nach rechts), um es auf einen einzigen Wert zu reduzieren.

var bills = [ 
 
      { 
 
      "refNo": 17, 
 
      "billDate": "1-apr-2016", 
 
      "dueDate": "30-apr-2016", 
 
      "pendingAmount": 4500, 
 
      "overdueDays": 28 
 
      }, 
 
      { 
 
      "refNo": 20, 
 
      "billDate": "15-apr-2016", 
 
      "dueDate": "3-may-2016", 
 
      "pendingAmount": 56550, 
 
      "overdueDays": 15 
 
      } 
 
     ]; 
 
     
 
     
 
     var result = bills.reduce(function(_this, val) { 
 
      return _this + val.pendingAmount 
 
     }, 0); 
 

 
    console.log(result) 
 
    //61050 answer

Verwandte Themen