Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/423.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 将数字添加到对象返回NaN_Javascript_Angularjs_Loops_For Loop_Foreach - Fatal编程技术网

Javascript 将数字添加到对象返回NaN

Javascript 将数字添加到对象返回NaN,javascript,angularjs,loops,for-loop,foreach,Javascript,Angularjs,Loops,For Loop,Foreach,我有一个稍微复杂的循环: angular.forEach($scope.days[i].trackers, function(key, value) { angular.forEach(key, function(el, name) { if(el.value != undefined) { counter = counter + parseInt(el.value); } }); arr[value] = pars

我有一个稍微复杂的循环:

angular.forEach($scope.days[i].trackers, function(key, value) {
    angular.forEach(key, function(el, name) {
        if(el.value != undefined) {
            counter = counter + parseInt(el.value);
        }
    });
    arr[value] = parseInt(arr[value]) + counter;
    counter = 0;
});
我认为重要的位是
counter=counter+parseInt(el.value)
arr[value]=parseInt(arr[value])+计数器

value
是一个随机生成的键,但我需要存储所有
el.value
total
,所以我将它们全部相加并分配给随机生成的键

这就是它看起来的样子:

0:NaN
1:NaN
-KuBV9A1YKgp-WBNrZgx:NaN
-KuBV_8NjZ_cu1fB2j2z:NaN
-KuCiznaYshVFsrutc68:NaN
-KuCjTcy8CuV1zvJRyPm:NaN
-KuClWJqnRjnkNkXZ046:NaN
-KuClnc4I3FhMLLV8cf0:NaN
老实说,我一开始不知道那两个整数是什么

无论如何,如果我使用
arr[value]=counter,它将返回NaN
而不是
arr[value]=parseInt(arr[value])+计数器
它实际上返回数字,但问题是它只是互相覆盖,并不产生一个
total
它产生最后一个
el.value

我有什么明显的遗漏吗?我真的需要这些数字的总和。。有什么想法吗?谢谢

编辑:

$scope.days[i]。跟踪器
看起来是这样的:

trackers
 -KuBV9A1YKgp-WBNrZgx
   -KuFEv1AiaHwur--Al_K
      note: "Pizza"
      value: "400"
   -KuFF-N41Oh6Y5zDTpc6
      note: "Jam"
      value: "200"
 -KuBV_8NjZ_cu1fB2j2z
   -KuFF3S3Jr9QSlUSvjqB
     note: "Morning"
     value: "150"
...etc
您正在累积(对所有值求和)并将它们添加到从不初始化的
arr[value]
(因此有一个
未定义的
值作为初始值)。您应该首先检查它是否有值:

arr[value] = arr[value] || 0;
arr[value] = arr[value] + counter;
或者在一行中:

arr[value] = (arr[value] || 0) + counter;

您能否共享
天[i]的数据结构?trackers
?@NafiulIslam添加在editYes中,这很有效!非常感谢。当它允许我的时候,我会确认为答案。