cari

Rumah  >  Soal Jawab  >  teks badan

javascript - Bagaimana untuk mencari data json dengan cepat

Cara mencari data json dengan cepat
Seperti gambar di bawah, jika id diketahui, cari nilai nama

仅有的幸福仅有的幸福2826 hari yang lalu835

membalas semua(3)saya akan balas

  • 世界只因有你

    世界只因有你2017-05-18 10:49:13

    Andaikan data asal anda seperti ini:

    var arr = [{
        id:1,
        name:'a'
    },{
        id:2,
        name:'b'
    }];

    Kini anda boleh menukar format data pada satu masa kepada:

    var obj = {};
    arr.forEach(function (v,i) {
        obj[v.id] = v;
    });
    
    obj = {
        1:{
            id:1,
            name:'a',
        },
        2:{
            id:2,
            name:'b'
        }
    };
    

    Kemudian anda boleh dapatkan nama terus berdasarkan id

    obj[id].name

    Malah, kecekapan di atas masih agak rendah.

    Sekarang ia telah digelung, terus pilih medan yang sepadan daripada gelung

    function getNameById(id) {
        var name = '';
        arr.forEach(function (v,i) {
            if (v.id==id) {
                name = v.name;
                console.log(i);
                return;
            }
        });
        return name;
    }

    Perbezaan antara dua kaedah di atas ialah jika anda terus mendapat nilai berulang kali, pilih kaedah pertama, kerana anda hanya perlu mengulung sekali, dan tidak perlu mengulang lagi kemudian.
    Kaedah kedua memerlukan peredaran semula setiap kali anda mendapatkannya

    balas
    0
  • ringa_lee

    ringa_lee2017-05-18 10:49:13

    Saya bersetuju dengan kenyataan di atas dan menukar struktur data. Tukar id kepada kunci. Tukar perkara lain kepada nilai Jika anda tidak memerlukan apa-apa lagi, anda boleh terus menukar nama kepada nilai

    .

    balas
    0
  • 过去多啦不再A梦

    过去多啦不再A梦2017-05-18 10:49:13

    fn(id) {
      return arr.filter(o => o.id === id)[0].name; // id一定有对应值的情况
    }

    balas
    0
  • Batalbalas