2017-09-28 2 views
0

Ich versuche, einen Wert in einem Objekt zu aktualisieren und es auf den aktuellen Wert + eine andere Zahl festzulegen. So zum Beispiel, wenn ein Objekt der Wert 5 ist, dass ich es so aktualisieren möchten: Objektschlüssel: aktueller Wert (5) + 7jQuery-Objekt - Wert = Wert + Nummer - Funktioniert nicht?

container[response["id"]]["quantity"] += quantity;   
console.log(container[response["id"]].attr("quantity")); 

Dies ist, was ich zur Zeit versucht, .. ich am Ende mit 57 statt 12 .

Irgendwelche Ideen?

Antwort

4

Sie erhalten als String und + mit string s verketten sie. Analysieren Sie zuerst die Nummer mit parseInt() oder parseFloat() als addieren.

let number = parseInt(container[response["id"]]["quantity"]); 
number += quantity; 
container[response["id"]]["quantity"] = number; 
+0

Hat nicht funktioniert, ich habe Angst .. Nur am Ende und mit 111 - 111-1111 usw. – Dandersen

+0

Ich habe nicht verstanden. Du stellst was du bekommst mit 5 + 7 –

+0

Ah, ja, nur ein Beispiel :) Mit 5 + 7 bekomme ich noch 57 - 577 - 5777 - 5777 – Dandersen

0

Die Frage ist, ist der Rückgabewert von response["id"]]["quantity"] ein string. Und wenn Sie versuchen, eine Zahl mit + zu einer Zeichenfolge hinzuzufügen, dann wird es verketten, so etwas wie ist 57. Um damit umzugehen, müssen Sie die Nummer unter Verwendung parseInt() oder parseFloat() zu Int oder Float analysieren. Ex:

let num = parseInt(container[response["id"]]["quantity"]); 
num += quantity; 
container[response["id"]]["quantity"] = num; 
Verwandte Themen