suchen

Heim  >  Fragen und Antworten  >  Hauptteil

javascript – So finden Sie schnell JSON-Daten

So finden Sie schnell JSON-Daten
Wie in der Abbildung unten gezeigt, ermitteln Sie den Namenswert, wenn die ID bekannt ist

仅有的幸福仅有的幸福2805 Tage vor815

Antworte allen(3)Ich werde antworten

  • 世界只因有你

    世界只因有你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;
    }

    上面两种方法的区别就是,如果不停的重复获取值,选择第一种方法,因为只需要循环一次,后面不需要再循环了。
    第二种方法每次获取都要重新循环一遍

    Antwort
    0
  • ringa_lee

    ringa_lee2017-05-18 10:49:13

    赞同楼上的说法,改变数据结构。把id变成key。把其他的东西变成value如果不需要其他的可以直接把name变成value

    Antwort
    0
  • 过去多啦不再A梦

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

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

    Antwort
    0
  • StornierenAntwort