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ď č. 1Nie 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é ...