Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/372.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:循环中不工作的所有数字的总和_Javascript_Arrays_Json_Mongodb - Fatal编程技术网

Javascript:循环中不工作的所有数字的总和

Javascript:循环中不工作的所有数字的总和,javascript,arrays,json,mongodb,Javascript,Arrays,Json,Mongodb,好的,我尝试通过+=或数据集为结果[I]中的循环对中的所有数字求和。数量(是的,是数字,不是字符串)。数量=0+数字(结果[I]。数量)但console.log返回我:NaN或类似于6135的上一次迭代,而不是36726 那么,在这个简单的代码中,我做错了什么 other logic here ], function (err, result) { console.log(result); // <<< see №1 let dataset =

好的,我尝试通过
+=
数据集为
结果[I]中的
循环对
中的所有数字求和。
数量(是的,是数字,不是字符串)。数量=0+数字(结果[I]。数量)
但console.log返回我:
NaN
或类似于
6135
的上一次迭代,而不是
36726

那么,在这个简单的代码中,我做错了什么

other logic here ], function (err, result) {
        console.log(result); // <<< see №1
        let dataset = [];
        for (let i = 0; i < result.length; i++ ) {
            dataset.min_abs = Math.min(result[i].min_abs);
            dataset.min_1 = Math.min(result[i].min_1);
            dataset.min_200 = Math.min(result[i].min_200);
            dataset.max_1 = Math.max(result[i].max_1);
            dataset.max_200 = Math.max(result[i].max_200);
            dataset.max_abs = Math.max(result[i].max_abs);
            dataset.quantity += Number(result[i].quantity);
            console.log(result[i].quantity) // <<< №2
        }
        console.log(dataset); // <<< №3
    }
);
console.log(结果[i].quantity)
打印我,显然是数字:

6993
5993
5935
5735
5935
6135
数据集
变量:

[ min_abs: 79500,
  min_1: 80000,
  min_200: 117999,
  max_1: 120000,
  max_200: 124493,
  max_abs: 130000,
  quantity: NaN //or 6135 but not 36726]
我已经用.map和.reduce尝试了几种方法,但我想在当前的
for
循环中同时对所有这些数字进行求和,而所有这些不同的方法都不起作用


我理解为什么我会收到6135,因为这是
周期的最后一次迭代,但为什么
+=
或任何其他构造在这里不起作用?当我需要对数组中的每个数字求和时,这不是第一次,但当我处理这个数字时,这是第一次。

尝试替换以下行:
dataset.quantity+=number(结果[I].quantity);
这样:
dataset.quantity+=result[i]。数量?0:编号(结果[i]。数量)


这样,在求和之前可以确保结果数组上的quantity属性存在。

尝试替换以下行:
dataset.quantity+=Number(结果[i].quantity);
这样:
dataset.quantity+=result[i]。数量?0:编号(结果[i]。数量)

这样,在求和之前就可以确保结果数组上的quantity属性存在。

在数据集实例化期间尝试将“quantity”设置为0。

在数据集实例化期间尝试将“quantity”设置为0。

此处的其他逻辑],函数(错误,结果){
other logic here ], function (err, result) {
        console.log(result); // <<< see №1
        **let Total= 0;**
        let dataset = [];
        for (let i = 0; i < result.length; i++ ) {
            dataset.min_abs = Math.min(result[i].min_abs);
           dataset.min_1 = Math.min(result[i].min_1);
            dataset.min_200 = Math.min(result[i].min_200);
            dataset.max_1 = Math.max(result[i].max_1);
            dataset.max_200 = Math.max(result[i].max_200);
            dataset.max_abs = Math.max(result[i].max_abs);
            **Total += Number(result[i].quantity);
            dataset.quantity  = Total;**
            console.log(result[i].quantity) // <<< №2
        }
        console.log(dataset); // <<< №3
    }
);
console.log(结果);//
此处的其他逻辑],函数(err,result){


console.log(结果);//那里的字符串是什么:
数量:NaN或6135但不是36726
-但不是,或者,等等?我想我错过了双斜杠
/
来解释我在各种情况下收到的注释那里的字符串是什么:
数量:NaN或6135但不是36726
-但不是,或者,等等?我想我错过了双斜杠
/
注释以解释我在各种情况下收到的内容实际上,无论是
Number
ParseInt
还是我粘贴的任何内容您是否尝试过三元运算?
result[I]。数量?0:Number(result[I]。数量)
是的,即使在编辑评论之前,结果仍然是
NaN
NaN
实际上,无论
Number
ParseInt
或我粘贴的任何内容,您是否尝试过三元运算?
结果[I]。数量?0:Number(结果[I]。数量)
是的,即使在你编辑你的评论之前,结果仍然是
NaN
是的,它是有效的,但有趣的是:我已经尝试了另一个变量
x
而不是
Total
并且它不起作用,即使在将它定义为零之后,它仍然有效,但有趣的是:我已经尝试了另一个变量变量
x
而不是
Total
,即使将其定义为zerobtw,它也不起作用,但我仍然不知道为什么像
dataset.quantity=0+Number这样的代码(结果[I].quantity)
不工作?几乎是一样的!您希望添加到以前设置的值,因此需要+=运算符。也就是说,在for()的第一个循环中添加之前,您需要定义值。所以这都是关于正确的顺序,对吗?我不能将
+=
设为“无”?正确。在添加变量之前,必须先设置变量,文本或其他。顺便说一句,但我仍然不知道为什么要编写类似
dataset.quantity=0+Number(结果[I].quantity)的代码
不工作?几乎是一样的!您希望添加到以前设置的值,因此需要+=运算符。也就是说,在for()的第一个循环中添加之前,您需要定义值。所以这都是关于正确的顺序,对吗?我不能将
+=
设为“无”?正确。在添加到变量之前,必须先设置变量,无论是文本还是其他。
other logic here ], function (err, result) {
        console.log(result); // <<< see №1
        **let Total= 0;**
        let dataset = [];
        for (let i = 0; i < result.length; i++ ) {
            dataset.min_abs = Math.min(result[i].min_abs);
           dataset.min_1 = Math.min(result[i].min_1);
            dataset.min_200 = Math.min(result[i].min_200);
            dataset.max_1 = Math.max(result[i].max_1);
            dataset.max_200 = Math.max(result[i].max_200);
            dataset.max_abs = Math.max(result[i].max_abs);
            **Total += Number(result[i].quantity);
            dataset.quantity  = Total;**
            console.log(result[i].quantity) // <<< №2
        }
        console.log(dataset); // <<< №3
    }
);