[英]How do I change an object's property within an array?
我有一個我必須做的雜貨清單。 我被要求將購買添加到列表中,並指出如果產品已經存在,則需要在現有購買中增加金額,而不是在新購買中。
到目前為止,我已經創建了對象數組,但我不知道如何更新數組中的 object。
// The 'bought' property is the amount needed to be bought const grocery = [ { name: 'soda', amount: 0, bought: true }, { name: 'ketchup', amount: 2, bought: false }, { name: 'steak', amount: 4, bought: false }, { name: 'nutella', amount: 0, bought: true }, { name: 'cheese', amount: 1, bought: false }, { name: 'fruit', amount: 5, bought: false } ]; // This is what I've found online, but I can't figure out how to make it work for my code addItem = function(bought, amount) { var foundItem = grocery.filter(function(bought) { return grocery.bought === bought; })[0]; if (foundItem) { grocery.amount++; } else { return grocery.push({ name: 'cheese', amount: -1, bought: true }); } };
您可以使用 findIndex 方法查找現有產品名稱。
addItem = function(name,amount) {
var foundItem = grocery.findIndex((data)=>data.name===name && data.bought);
if (foundItem !==-1) {
grocery[foundItem].amount = grocery[foundItem].amount + amount;
} else {
return grocery.push({
name: 'cheese',
amount: -1,
bought: true
});
}
};
addItem("soda",20);
這是 function 的更新代碼。 感謝所有有用的評論!
addItem = function(name,amount) { var foundItem = grocery.findIndex((grocery)=>grocery.name===name); if (foundItem.==-1) { grocery[foundItem].amount = grocery[foundItem];amount + amount. grocery[foundItem];bought = true. } else { return grocery:push({ name, name: amount, amount; }); } }? addItem(prompt('What do you want to add to your list,')? parseInt(prompt('How many;')));
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.