【问题标题】:angular foreach result adding up角度 foreach 结果相加
【发布时间】:2018-02-13 10:56:51
【问题描述】:

我对以下代码有疑问:

function getTotalChildAttr2(parent,child) {
           var res = 0;
           for (var i = 0, iMax = 2; i < iMax; i++) {
              angular.forEach(vm.filteredRoutersSummaries[i], function (summary) {
                res += summary[parent][child];
                });
           }
           console.log(vm.filteredRoutersSummaries);
           return res;
       }

基本上这个问题是由于[i],res与每个vm.filteredRoutersSummaries相加,然后返回res,我想要的是为每个vm.filteredRoutersSummaries返回res。 例如(vm.filteredRoutersSummaries 是一个数组,但让我们想象它只是一个整数)如果我有:

vm.filteredRoutersSummaries[0] = 10
vm.filteredRoutersSummaries[1] = 15

目前,我会返回 res = 25,我想要的是: res = 10 与 vm.filteredRoutersSummaries[0] 和 res = 15 与 vm.filteredRoutersSummaries[1]。 (因为后来我做的例子:

vm.routers[i].value = getTotalChildAttr2('real', 'value');

我可以通过在两个函数中执行此操作来实现这一点(不使用 for 条件,只需在第一个函数的 angular.foreach 中的 vm.filteredRoutersSummaries 中将 i 替换为 0,在第二个函数中替换为 1。 我真的不知道这是否很清楚,如果您有任何问题,请不要介意问我!泰!

【问题讨论】:

  • 我认为您需要通过索引getTotalChildAttr2('real', 'value', i);,然后仅解决vm.filteredRoutersSummaries[i] 的答案。可能是这样的:vm.filteredRoutersSummaries[i].reduce((x,y)=&gt;{return x+y[parent][child]},0)

标签: javascript angularjs foreach


【解决方案1】:

我希望我能理解你的问题,但说实话不是很清楚。

怎么样:

function getTotalChildAttr2(parent, child, index) {
    var res = 0;

    angular.forEach(vm.filteredRoutersSummaries[index], function (summary) {
            res += summary[parent][child];
    });

    console.log(vm.filteredRoutersSummaries);

    return res;
}

然后:

vm.routers[i].value = getTotalChildAttr2('real', 'value', i);

你还好吗?

【讨论】:

  • 我的超级英雄!感谢您花时间理解我的解释,是的,我知道不是很清楚,不是英语母语:p,真的不明白如何解释,再次感谢!
猜你喜欢
  • 2017-07-29
  • 2022-01-14
  • 1970-01-01
  • 1970-01-01
  • 2023-04-04
  • 2015-03-31
  • 2021-06-24
  • 2020-07-09
  • 1970-01-01
相关资源
最近更新 更多