javascript:通过递增 objectKeys 值来更新对象

javascript: updating Object by incrementing objectKeys value

本文关键字:更新 对象 objectKeys javascript      更新时间:2023-09-26

我正在尝试制作一个对象,其中键是年数,值是金额

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"中,而不是替换它。

如果有更好的方法来保存年度金额并更新它,我愿意接受它。

使用 +=

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;
}