javascript - Bagaimana untuk mencari data json dengan cepat
仅有的幸福
仅有的幸福 2017-05-18 10:47:13
0
3
794

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

仅有的幸福
仅有的幸福

membalas semua(3)
世界只因有你

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

左手右手慢动作

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

.
过去多啦不再A梦
fn(id) {
  return arr.filter(o => o.id === id)[0].name; // id一定有对应值的情况
}
Muat turun terkini
Lagi>
kesan web
Kod sumber laman web
Bahan laman web
Templat hujung hadapan