首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >使用Keys Javascript在ForEach中增加自身的价值

使用Keys Javascript在ForEach中增加自身的价值
EN

Stack Overflow用户
提问于 2022-02-04 16:00:28
回答 2查看 671关注 0票数 1

我试图通过一个数组循环,并对数组中的每个部门进行求和。见下文。我试图循环遍历对象,并将每个部门的所有货币值(和值)相加。

代码语言:javascript
运行
复制
var awards = [
  { Department: "AL", Money: 100 }, 
  { Department: "AL", Money: 100 },
  { Department: "OB", Money: 200 }, 
  { Department: "AL", Money: 100 },
  { Department: "OB", Money: 200 }
];

var myObj = {},
    array1 = [],
    sum = 0,
    array2 = [],
    myObj2 = {};
var activeDepartments = ["AL", "OB"];
//FOREACH
Object.keys(awards).forEach(function(key, index) {
    var department = awards[key].Department;
    var money = awards[key].Money;
    sum = 0;

    // console.log(this[index].Money);
    if (activeDepartments.indexOf(department) !== -1) {
        sum += this[index].Money;
        myObj[department] = sum;
    }
    //console.log(index);

}, awards);
array1.push(myObj); //PUSH OBJECT TO ARRAY
console.log(array1);

//trying to get object to look like this: [{AL:300}, {OB:400}]

EN

Stack Overflow用户

发布于 2022-02-04 17:12:43

而不是sum = 0,您需要sum = myObj[department] ?? 0;。这样,您就不会重新发送循环每次迭代的和。这一行代码所做的是检查是否定义了?? (myObj[department])左侧的表达式。如果是,则将其值赋值为求和。否则,它将表达式的值赋给??的右侧。

票数 0
EN
查看全部 2 条回答
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/70989319

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档