搜尋

首頁  >  問答  >  主體

javascript - 如何快速找到json資料呢

如何快速找出json資料呢
如下圖所示,已知id,找出name值

仅有的幸福仅有的幸福2788 天前805

全部回覆(3)我來回復

  • 世界只因有你

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

    假設你的原始資料是這樣的:

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

    現在你可以一次的轉換一下資料格式為:

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

    然後就可以根據id,直接拿到name了

    obj[id].name

    其實上面的效率還是比較低的。

    既然已經循環了,就直接從循環裡那對應的字段

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

    上面兩種方法的差別就是,如果不停的重複取得值,選擇第一種方法,因為只需要循環一次,後面不需要再循環了。
    第二種方法每次取得都要重新循環一次

    回覆
    0
  • ringa_lee

    ringa_lee2017-05-18 10:49:13

    贊同樓上的說法,改變資料結構。把id變成key。把其他的東西變成value如果不需要其他的可以直接把name變成value

    回覆
    0
  • 过去多啦不再A梦

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

    雷雷

    回覆
    0
  • 取消回覆