recherche

Maison  >  Questions et réponses  >  le corps du texte

javascript - Comment trouver rapidement des données JSON

Comment trouver rapidement des données json
Comme le montre la figure ci-dessous, si l'identifiant est connu, recherchez la valeur du nom

仅有的幸福仅有的幸福2805 Il y a quelques jours813

répondre à tous(3)je répondrai

  • 世界只因有你

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

    Supposons que vos données d'origine ressemblent à ceci :

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

    Vous pouvez désormais convertir le format de données en une seule fois en :

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

    Ensuite, vous pouvez obtenir le nom directement en fonction de l'identifiant

    obj[id].name

    En fait, l'efficacité ci-dessus est encore relativement faible.

    La boucle ayant été bouclée, il suffit de sélectionner le champ correspondant directement depuis la boucle

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

    La différence entre les deux méthodes ci-dessus est que si vous continuez à obtenir la valeur à plusieurs reprises, choisissez la première méthode, car vous n'avez besoin de boucler qu'une seule fois et il n'est pas nécessaire de refaire une boucle plus tard.
    La deuxième méthode nécessite une recirculation à chaque fois que vous l'obtenez

    répondre
    0
  • ringa_lee

    ringa_lee2017-05-18 10:49:13

    Je suis d'accord avec ce que vous avez dit ci-dessus, changez la structure des données. Remplacez l'identifiant par la clé. Transformez d'autres choses en valeur. Si vous n'avez besoin de rien d'autre, vous pouvez directement transformer le nom en valeur

    .

    répondre
    0
  • 过去多啦不再A梦

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

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

    répondre
    0
  • Annulerrépondre