替代for(var x in array)

时间:2015-11-15 23:18:10

标签: javascript for-loop

我有两个名为cart and stock的产品阵列。 假设有5个产品到e。

股票可能看起来像

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) 

但它不起作用。

还有其他选择吗?

1 个答案:

答案 0 :(得分:0)

目前还不清楚你是否在迭代一个数组或一个对象,但由于你的问题是数组,我将假设cartstock都是数组而{ {1}}和a是数字。

正如Chris L所提到的,你可能不应该为数组使用b循环,因此我建议只使用正常的for..in循环。

for

如果您定位IE9 +,我认为for (var i = 0; i < cart.length; i++) { if (cart[i] > 0) { cart[i] = stock[i]; } } 更清洁一点。

forEach

旁注:如果代码大于0,则此代码会重新分配cart.forEach(function (item, index) { if (item > 0) { cart[index] = stock[index]; } } ,这对我来说似乎很奇怪......