Javascript 最后24行之和除以24=NaN数
我需要计算过去24小时的信号功率,我连接到 一个api将我的数据保存到PHP中的数组中(也在 MySql)我将我的PHP数组发送到JavaScript 在JavaScript中,我对数组进行排序Javascript 最后24行之和除以24=NaN数,javascript,Javascript,我需要计算过去24小时的信号功率,我连接到 一个api将我的数据保存到PHP中的数组中(也在 MySql)我将我的PHP数组发送到JavaScript 在JavaScript中,我对数组进行排序 Monday/Thuesday/Wednesday/Thursday/Friday/Saturday/Sunday 请查看我在工作日后的代码排序:data=MyArray from PHP function testfunction(data) { let {gateway1, gatew
Monday/Thuesday/Wednesday/Thursday/Friday/Saturday/Sunday
请查看我在工作日后的代码排序:data=MyArray from PHP
function testfunction(data) {
let {gateway1, gateway2, gateway3, gateway4} = data;
let result = [
[], //0 Sunday
[], //1 Monday
[], //2 Tuesday
[], //3 Wednesday
[], //4 Thursday
[], //5 Friday
[] //6 Saturday
];
function sort(dataset, result) {
dataset.forEach(row => {
row.forEach(innerRow => {
let currentDay = moment(innerRow[11], 'YYYY-MM-DD HH:mm:ss');
result[currentDay.day()].push(innerRow);
})
});
return result;
}
let resultGW1 = sort(gateway1, result);
let resultGW2 = sort(gateway2, result);
let resultGW3 = sort(gateway3, result);
let resultGW4 = sort(gateway4, result);
在对工作日后的数据进行排序后,我尝试以我的数据为例
星期一是最后24行的数据
//resultGWX[DAY][ROW][COLUMN]
var i = 0;
while(i<24){
var z = console.log(resultGW1[1][i][1]);
i++;
}
var t = parseInt(z);
// Console.log(t) = result is number
console.log(t/24);
}
//resultGWX[DAY][ROW][COLUMN]
var i=0;
而(i你的问题就在这里:
var z = console.log(resultGW1[1][i][1]);
无论什么resultGW1[1][i][1]
都无关紧要,因为虽然值可能会显示在控制台中,但它不是console.log()
的函数返回值
无论console.log()
调用包含什么,返回值都是undefined
,这意味着这行代码将始终将z
设置为undefined
这就意味着t
将给出一个NaN
值,因为您正在undefined
上执行parseInt()
,当然t/24
也将随后失败
要解决此问题,请直接将z
设置为resultGW1[1][i][1]
,远离任何console.log()调用
您还需要将值添加到z
中,而不仅仅是设置z
,否则z
将被设置为最后一个值
因此,您的线路应如下所示:
z += resultGW1[1][i][1];
您需要在循环之前有一个var z=0;
来初始化`z变量。请单击编辑,然后单击[]
代码段编辑器并生成一个“且未对最后24行求和”-你认为在你给我们看的代码中,你在哪里对任何东西进行求和?我在任何地方都看不到。杰普这一定是我该如何求和的问题。你能给我一个例子吗?我是个新手,我看不到任何求和?试着使用一个对象来存储所有数据的求和“我该如何求和?”-通过在循环之前初始化一个值为0的变量,然后在循环内部添加循环到其中的每个项目的单个值…?