Rumah  >  Soal Jawab  >  teks badan

javascript - Bagaimana untuk memotong objek tatasusunan dengan panjang 365 kepada 12 kumpulan mengikut bulan?

Gambar yang ditunjukkan ialah fail json yang menyimpan data AQI untuk sepanjang tahun 2014. Sekarang saya ingin mengira purata AQI bulanan Bagaimana saya perlu memproses tatasusunan ini?

怪我咯怪我咯2685 hari yang lalu1017

membalas semua(7)saya akan balas

  • 黄舟

    黄舟2017-07-05 10:38:42

    arr.reduce((r,v)=>r[v.date.split('/')[1]-1].push(v)&&r,new Array(12).fill(0).map(_=>[]))

    Hasil pulangan ini boleh mengembalikan tatasusunan baharu yang mengandungi 12 tatasusunan, setiap subtatasusunan mengandungi data AQI bulan semasa

    Saya baru mengetahui bahawa tujuan utama poster adalah untuk mencari purata AQI setiap bulan, jadi anda boleh melakukan ini:

    arr.reduce((r,v)=>r[v.date.split('/')[1]-1].push(v)&&r,new Array(12).fill(0).map(_=>[]))
       .map((i,k)=>{
            let r = i.reduce((r,v)=>{for(let j in r)r[j]+=(+v[j]);return r},{beijing:0,shanghai:0,guangzhou:0});
            for(let j in r) r[j] = parseInt(r[j]/i.length);
            return {...r,month:k+1+'月'}
    })    

    Hasil ini mengembalikan tatasusunan yang mengandungi 12 elemen dalam bentuk {month:'1月',beijing:12,shanghai:24,guangzhou:36}, dan nilai di dalamnya ialah nilai purata setiap bulan.

    balas
    0
  • 欧阳克

    欧阳克2017-07-05 10:38:42

    Kumpulkan mengikut di latar belakang, gunakan purata()

    balas
    0
  • 三叔

    三叔2017-07-05 10:38:42

    Rasanya anda tidak perlu memproses data, yang hanya akan terus menggunakan memori Anda hanya perlu mengetahui titik permulaan dan titik akhir setiap bulan, dan hanya menggunakan titik permulaan dan titik akhir untuk mendapatkan tatasusunan. untuk pengiraan
    Sebab sebenarnya, data Semuanya ada di sini, cuma peraturan cara anda menggunakan data adalah berbeza

    balas
    0
  • PHP中文网

    PHP中文网2017-07-05 10:38:42

    Soalan anda terutamanya tentang cara membahagikan kepada 12 kumpulan Saya menyediakan dua idea mudah

    1. Tukar tarikh kepada objek tarikh dan kumpulan mengikut bulan

    2. Gunakan peraturan biasa untuk mendapatkan tarikh yang sepadan untuk mengumpulkannya

    balas
    0
  • 迷茫

    迷茫2017-07-05 10:38:42

    Dari analisis JSONformat yang anda berikan:

    • Tatasusunan persisian 1-12, mewakili 12 bulan

    • Lintas tatasusunan sekali lagi dan dapatkan object,取objectdata值,按照/分割得到月,根据月份把objectdiisi ke dalam bulan yang sepadan

    • Dapatkan data yang sepadan untuk setiap bulan dan proseskannya secara bulanan

    balas
    0
  • 滿天的星座

    滿天的星座2017-07-05 10:38:42

    Biarkan bahagian belakang memproses pengumpulan data, dan bahagian hadapan bertanggungjawab untuk menggunakannya.

    balas
    0
  • 巴扎黑

    巴扎黑2017-07-05 10:38:42

    var jsonData = [{
        'date': '2014/1/1',
        'beijing': 80,
        'shanghai': 123,
        'guangzhou': 99 
    },{
        'date': '2014/1/2',
        'beijing': 80,
        'shanghai': 123,
        'guangzhou': 99 
    },{
        'date': '2014/2/1',
        'beijing': 80,
        'shanghai': 123,
        'guangzhou': 99 
    }];// 保存的json数据
    
    var arr = [{'date': '1', 'b': 0, 's': 0, 'g': 0}];
    var k = 0;
    for(var i = 0; i < jsonData.length; i++) {
        var item = jsonData[i];
        var dateArr = item.date.split('/');
        if (dateArr[1] == arr[k].date) {
            arr[k].b += item.beijing;
            arr[k].s += item.shanghai;
            arr[k].g += item.guangzhou;
        } else {
            var param = {
                'date': dateArr[1],
                'b': 0,
                's': 0,
                'g': 0
            };
            k++;
            arr.push(param);
        }
    }
    console.log(arr);

    Kod di atas menjumlahkan data setiap bulan Ia sepatutnya mudah ke purata, kod di atas mempunyai keperluan untuk data json, iaitu semua data mesti dikelaskan mengikut bulan

    balas
    0
  • Batalbalas