Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/xslt/3.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 最后24行之和除以24=NaN数_Javascript - Fatal编程技术网

Javascript 最后24行之和除以24=NaN数

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

我需要计算过去24小时的信号功率,我连接到 一个api将我的数据保存到PHP中的数组中(也在 MySql)我将我的PHP数组发送到JavaScript

在JavaScript中,我对数组进行排序

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的变量,然后在循环内部添加循环到其中的每个项目的单个值…?