Maison > Questions et réponses > le corps du texte
Comment trouver rapidement des données json
Comme le montre la figure ci-dessous, si l'identifiant est connu, recherchez la valeur du nom
世界只因有你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
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
.过去多啦不再A梦2017-05-18 10:49:13
fn(id) {
return arr.filter(o => o.id === id)[0].name; // id一定有对应值的情况
}