/ / Alternative zu for (var x in array) - Javascript, for-Schleife

Alternative zu (var x in Array) - Javascript, for-Schleife

Ich habe zwei Arrays von Produkten, die als Wagen und Lager bezeichnet werden. Angenommen, es gibt 5 Produkte a bis e.

Stock könnte aussehen

stock[a] = 5, stock[b] = 5...

usw

und der Einkaufswagen könnte aussehen

cart[a] = 2, cart[b] = 0...

Ich versuche so etwas zu tun

for (var product in cart){ if(cart[product] > 0){ cart[product] = stock[product] }

Lager [product] gibt jedoch immer 0 zurück. Wie kann ich es so schaffen, dass ich mit demselben variablen Produkt auf Produkte zugreifen kann, die sowohl im Bestand als auch im Warenkorb liegen?

Ich habe so etwas probiert

for (var product in cart && var product in stock)

aber es funktioniert nicht.

Gibt es eine andere Alternative?

Antworten:

0 für die Antwort № 1

Es ist unklar, ob Sie über ein Array oder ein Objekt iterieren, aber da Ihre Frage Array sagt, nehme ich beides an cart und stock sind Arrays und a und b sind Zahlen.

Wie Chris L bereits erwähnte, sollten Sie wahrscheinlich keine verwenden for..in Schleife für Arrays, also würde ich nur eine normale empfehlen for Schleife.

for (var i = 0; i < cart.length; i++) {
if (cart[i] > 0) {
cart[i] = stock[i];
}
}

Wenn Sie auf IE9 + abzielen, a forEach ist meiner Meinung nach ein wenig sauberer.

cart.forEach(function (item, index) {
if (item > 0) {
cart[index] = stock[index];
}
}

Randbemerkung: Dieser Code sieht so aus, als würde er neu zugewiesen cart[i] Wenn es größer als 0 ist, erscheint mir das sehr komisch ...