首页  >  问答  >  正文

javascript - 如何快速查找json数据呢

如何快速查找json数据呢
如下图所示,已知id,查找name值

仅有的幸福仅有的幸福2735 天前762

全部回复(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
  • 取消回复