gpt4 book ai didi

javascript - 如何返回对象数组属性的总和而不是它们的 double ?

转载 作者:行者123 更新时间:2023-12-02 06:26:50 26 4
gpt4 key购买 nike

我正在制作一个费用跟踪器基本代码(没有 ui,只有初始脚本),但是我在尝试 console.log 用户总花费的总和时遇到了问题,我的代码只会将花费的钱加倍对于每件购买的元素,所以我决定在这里寻求帮助。

代码:

//initial code

const account = {
name: 'user',
expenses: [],
addExpense: function(description, amount) {
account.expenses.push({
description: description,
amount: amount
});
},
getAccountSummary: function() {
let expenses = account.expenses;
for (let i = 0; i < expenses.length; i++ ) {
let value = expenses[i].amount + expenses[i].amount;
console.log(value);
}
}
}

//output calls

account.addExpense('Milk', 8);
account.addExpense('Netflix', 30);
account.addExpense('Steam summer sale', 26);
account.addExpense('Coffee', 4);
console.log(account.getAccountSummary());

代码总是在下面记录这个值:

16
60
52
8

实际上是输入值的两倍(8、30、26、4)。

我正在寻找的输出是所有这些值的总和,在这种情况下:

68

希望我的问题很清楚。

最佳答案

如果您想要一个基于数组中项目的值,那么您应该查看 reduce

const account = {
name: 'user',
expenses: [],
addExpense: function(description, amount) {
account.expenses.push({
description: description,
amount: amount
});
},
getAccountSummary: function() {
return account.expenses.reduce((acc,{amount}) => acc+amount,0);
}
}

关于javascript - 如何返回对象数组属性的总和而不是它们的 double ?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/57642500/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com