2017-09-17 2 views
1

를 반환 내가 counter = counter + parseInt(el.value);arr[value] = parseInt(arr[value]) + counter;추가 수는 내가 약간 복잡한 루프가 NaN의

value가 무작위로 생성 된 키입니다 생각

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

중요한 비트,하지만 난 total을 저장해야 모두 el.value의 것입니다. 그래서 나는 그것들을 모두 더하고 임의로 생성 된 키에 할당 할 것입니다.

가 어떻게 생겼는지의 일종이다 : 어쨌든

0:NaN 
1:NaN 
-KuBV9A1YKgp-WBNrZgx:NaN 
-KuBV_8NjZ_cu1fB2j2z:NaN 
-KuCiznaYshVFsrutc68:NaN 
-KuCjTcy8CuV1zvJRyPm:NaN 
-KuClWJqnRjnkNkXZ046:NaN 
-KuClnc4I3FhMLLV8cf0:NaN 

나는 정직, 난 그 두 정수가 처음에 모르는 ..

, 그것은 NaN이를 retuns 그러나 나는 arr[value] = counter; 대신 실제로 숫자를 반환 arr[value] = parseInt(arr[value]) + counter;의 사용하지만, 문제는 그냥 서로 덮어이며, 그것이 마지막 el.value

생산하는 total를 생성하지 않는 경우가 있나요 내가 놓친 게 분명해? 나는 숫자의 총계 또는 합계가 정말로 필요하다. .. 어떤 생각이라도? 감사!

편집 : 당신은, 따라서 undefined 값을 갖는 (초기화하지

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 
+0

당신이'일에 대한 데이터 구조를 공유 할 수 [I] .trackers'? –

+0

@NafiulIslam 편집 추가됨 –

답변

1

당신은 축적 (모든 값을 합산)하고 arr[value]에 추가 :

$scope.days[i].trackers는 방법으로 다음과 같이 보입니다 초기 값으로). 처음 값이있는 경우 확인해야합니다 :

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

또는 한 줄에

:

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

예,이 작업이! 고맙습니다. 그것이 나를 가능하게 할 때 대답으로 확인해 줄 것입니다. –

+0

여러분을 환영합니다! –