/ / алтернатива на за (var x in array) - javascript, for-loop

алтернатива на за (var x в масив) - javascript, for-loop

Имам два масива от продукти, наречени количка и склад. Да кажем, че има 5 продукта от а до д.

Запасът може да изглежда

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

и т.н.

може да изглежда така

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

Опитвам се да направя нещо подобно

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

Но запасът [продукт] винаги връща 0. Как мога да го направя така, че да мога да използвам същия променлив продукт за достъп до продуктите както в склада, така и в количката?

Опитах нещо подобно

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

но не работи.

Има ли друга алтернатива?

Отговори:

0 за отговор № 1

Не е ясно дали се повтаряте в масив или обект, но тъй като вашият въпрос казва масив, ще приемам и двете cart и stock са масиви и a и b са числа.

Както спомена Крис Л, най-вероятно не трябва да използвате a for..in цикъл за масиви, така че бих препоръчал само нормално for контур.

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

Ако се насочите към IE9 +, a forEach по мое мнение е малко по-чист.

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

Странична бележка: този код прилича на преназначаване cart[i] ако е по-голямо от 0, което ми се струва много странно ...