【发布时间】:2018-12-16 02:26:02
【问题描述】:
var ingredients = [
{ name: 'potatoes', quantity: 4 },
{ name: 'butter', quantity: 1 },
{ name: 'milk', quantity: 1, description: '1 cup' },
{ name: 'potatoes', quantity: 3 },
{ name: 'oil', quantity: 1, description: '3 cups' } ];
const shoppingList = [];
for (let i = 0; i < ingredients.length; i ++) {
for (let j = 0; j < shoppingList.length; j ++){
let ingredient = ingredients[i];
let shoppingListItem = shoppingList[j];
if(ingredient === shoppingListItem){
break;
}else if (roughDraftItem.name === shoppingListItem.name){
shoppingListItem.quantity += roughDraftItem.quantity;
} else {shoppingList.push(roughDraftItem);
}
}
}
当我运行此代码时, shoppingList 数组返回为空。当我取出第二个循环时,代码没有问题,我得到了我需要的东西
shoppingListItem = { name: 'potatoes', quantity: 1}
尝试将成分数组与 shoppingList 数组进行比较似乎是一个问题(在添加对象之后)。
【问题讨论】:
-
内部循环根本不会运行,因为
shoppingList以length为0,而0 < 0是false。
标签: javascript arrays for-loop javascript-objects