2017-04-05 3 views
0

Ich versuche, zwei Komponenten zu multiplizieren zusammen in meinem Objekt ArrayJSON Mathematik auf Objekt-Array-Wert

{ 
    "rx": { 
    "vials": [ 
     { 
     "description": "Rx 1", 
     "strength": 100, 
     "form": "ML", 
     "pkg_size": 10, 
     "case_size": 1, 
     "total_units": strength * pkg_size, 
     "ndc": "12345-1234-12", 
     "covered": true 
     } 
    ] 
    } 
} 

Aber wenn ich etwas tun, wie

$("#demo").html(rx.vials[0].total_units); 

ich nichts oder NaN

Was mache ich falsch ??

+1

es in Ihrem Objekt – RomanPerekhrest

+0

kein 'insulin' Schlüssel ist wieder Überprüfen Sie den Pfad! Dieser 'rx.insulin.vials [0] .total_units' wird einen Fehler ausgeben, wenn er für das von Ihnen angegebene Objekt aufgerufen wird! –

+2

'Stärke' und' pkg_size' sind beide undefined – tom10271

Antwort

1

Sie können so etwas wie dies versuchen:

Sie können total_units Eigenschaft in vials[0] nachdem ich die Berechnung hinzufügen.

var jsonObj = { 
 
    "rx": { 
 
    "vials": [ 
 
     { 
 
     "description": "Rx 1", 
 
     "strength": 100, 
 
     "form": "ML", 
 
     "pkg_size": 10, 
 
     "case_size": 1, 
 
     "ndc": "12345-1234-12", 
 
     "covered": true 
 
     } 
 
    ] 
 
    } 
 
}; 
 

 
jsonObj.rx.vials[0].total_units = jsonObj.rx.vials[0].strength * jsonObj.rx.vials[0].pkg_size; 
 

 
console.log(jsonObj.rx.vials[0].total_units);

1

Sie können das nicht tun. Wenn Sie etwas Mathe innerhalb eines Objekts machen wollen, müssen Sie externe Variablen verwenden - Sie können nicht von selbst auf die Eigenschaften des Objekts zugreifen.

+0

Also etwas wie '$ (" #demo ") .html (rx.vials [0] .stärke * rx.vials [0] .pkg_size);'? – abracassabra

1

Sie können so etwas wie dies versuchen:

for (var i = 0; i < rx.vials.length; i++) { 
    rx.vials[i].total_units = rx.vials[i].strength * rx.vials[i].pkg_size; 
} 

console.log(rx.vials[0].total_units);