2017-05-23 2 views
0

in der folgenden Funktion, q und id log 1 und 2 jeweils, aber die Reihenfolge entspricht 1 anstelle von {items: [{"product": 2, "quantity": 1}]}.Push reagiert nicht wie erwartet?

function addToCart(id) { 
     q = $('.shopify-buy__quantity').val(); 
     console.log("q: " + q) 
     console.log("id: " + id) 
     var order = {items: []} 
     order = order.items.push({"product": id, "quantity": q}) 
     console.log('order: ' + order) 
     order = JSON.stringify(order) 
     storage.setItem('domehaOrder', order) 
     updateCart() 
} 

Wie kann ich das beheben?

Antwort

3

Array.push() gibt das Objekt, das das Array besitzt, nicht zurück. Es ändert das Array-Objekt selbst, indem es am Ende das neue Element hinzufügt, und gibt dann die neue Länge des Arrays zurück.

Rufen Sie es einfach an, weisen Sie die Länge des Arrays nicht order zu.

order.items hat jetzt ein Element darin.

0

entfernen Sie die Zuordnung order = order.items.push({"product": id, "quantity": q})

Just do order.items.push({"product": id, "quantity": q})