gpt4 book ai didi

javascript - 将数字添加到对象返回 NaN

转载 作者:行者123 更新时间:2023-11-30 15:02:45 26 4
gpt4 key购买 nike

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

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]) + counter;

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

这是它的样子:

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

老实说,一开始我不知道这两个整数是什么..

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

有什么明显的我遗漏的吗?我真的需要总数或总和..有什么想法吗?谢谢!

编辑:

$scope.days[i].trackers 顺便说一句,看起来像这样:

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](因此具有 undefined 值作为初始值)。你应该先检查它是否有值:

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

或在一行中:

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

关于javascript - 将数字添加到对象返回 NaN,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/46266897/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com