我正在尝试创建一个对象,其中键是年数,值是金额
yearlyCost = {"2016":0,"2017":0,"2018":0,"2019":0} //year(key):amount(value)
我在视图中有一个输入字段,可以让我创建新的金额,每当我添加不同的addLocalCostContributor时,它会检查条件是否匹配,金额将被添加到年份。
function addLocalCostContributor(localCost, year) {
localCost.contributors.push({});
for(var i=0; i < localCost.contributors.length;i++ ) {
if(angular.isDefined(localCost.contributors[i].contributor) && localCost.contributors[i].contributor.name ==='Agriterra') {
vm.argiterraYearlyLocalCost[year] = localCost.contributors[i].amount;
}
}
}
问题是,每当添加新金额并满足条件时,我希望年份添加该金额。因此,如果“2016”年度获得新金额,则应将金额添加到关键字“2016”,而不是替换它。
如果有更好的方法来保存年度金额并进行更新,我愿意接受。
答案 0 :(得分:2)
使用+=
:
vm.argiterraYearlyLocalCost[year] += localCost.contributors[i].amount;
事实上,只是为了确保特定年份的密钥存在:
if(vm.argiterraYearlyLocalCost.hasOwnProperty(year)) {
vm.argiterraYearlyLocalCost[year] += localCost.contributors[i].amount;
}
else {
vm.argiterraYearlyLocalCost[year] = localCost.contributors[i].amount;
}