/ / alternative to for (var x in array) - javascript, for-loop

alternatíva k pre (var x v poli) - javascript, for-loop

Mám dve polia výrobkov nazývaných košík a pažba. Povedzme, že existuje 5 produktov a až e.

Akcie by mohli vyzerať

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

atď

a košík by mohol vyzerať

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

Snažím sa niečo také urobiť

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

Akcia stock [product] sa však vždy vracia 0. Ako to môžem urobiť, aby som mohol použiť rovnaký produkt s premenlivou hodnotou na prístup k produktom na sklade aj na sklade?

Skúsil som niečo ako

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

ale nefunguje.

Existuje nejaká iná alternatíva?

odpovede:

0 pre odpoveď č. 1

Nie je jasné, či iterujete alebo nie cez pole alebo objekt, ale keďže vaša otázka hovorí o poli, predpokladám, že cart a stock sú polia a a a b sú čísla.

Ako uviedol Chris L, pravdepodobne by ste nemali používať a for..in slučka pre polia, tak by som odporučil len normálne for slučky.

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

Ak zacieľujete na IE9 +, a forEach je podľa môjho názoru trochu čistejší.

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

Vedľajšia poznámka: tento kód vyzerá, že sa jedná o nové priradenie cart[i] ak je to väčšie ako 0, čo sa mi zdá veľmi divné ...