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