Saya perlu Menghitung SignalPower dari 24 Jam terakhir, saya terhubung ke api sampai di sana Data saya yang saya simpan ke dalam Array saya di PHP (juga di MySql) saya mengirim Array PHP saya ke JavaScript.

Dalam JavaScript saya mengurutkan Array saya

Monday/Thuesday/Wednesday/Thursday/Friday/Saturday/Sunday 

Tolong lihat Penyortiran Kode saya setelah Hari Kerja: data = Array saya dari 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);

Setelah menyortir Data saya setelah Hari Kerja saya mencoba membaca saya sebagai contoh data Senin 24 baris terakhir

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

Ketika saya console.log saya mendapatkan info (pesan) berikut di Konsol Browser saya: (24) -61 saya pikir itu membaca 24 baris tetapi hanya menghasilkan kekuatan sinyal terakhir dan tidak menjumlahkan 24 baris terakhir dan membagi 24

-2
noSkill06s 28 Oktober 2019, 13:29

1 menjawab

Jawaban Terbaik

Masalah Anda ada di sini:

var z = console.log(resultGW1[1][i][1]);

Tidak masalah apa resultGW1[1][i][1] karena meskipun nilainya mungkin ditampilkan di konsol, itu bukan nilai pengembalian fungsi console.log().

Apa pun isi panggilan console.log() Anda, nilai kembaliannya adalah undefined, yang berarti z akan selalu disetel ke undefined oleh baris kode ini.

Ini berarti t akan memberikan nilai NaN karena Anda melakukan parseInt() pada undefined, dan tentu saja t/24 Anda selanjutnya akan gagal juga.

Untuk memperbaikinya, setel z ke resultGW1[1][i][1] secara langsung, jauh dari panggilan console.log() apa pun.

Anda juga perlu menambahkan nilai ke z daripada hanya menyetel z, jika tidak z hanya akan disetel ke nilai terakhir.

Jadi baris Anda akan terlihat seperti ini:

z += resultGW1[1][i][1];

Anda harus memiliki var z = 0; sebelum loop untuk menginisialisasi variabel `z juga.

0
Spudley 28 Oktober 2019, 10:41