Maison > Article > interface Web > Exemple détaillé de la façon dont JavaScript trie et recherche les données JSON
Aujourd'hui, je vais vous apprendre à utiliser les méthodes de tableau pour implémenter les fonctions de tri et de recherche de données JSON. Pour des exemples de codes spécifiques, veuillez vous référer à cet article
Lorsque vous utilisez AJAX pour obtenir des données, la plupart des données sont renvoyées. en arrière-plan se trouvent les données json, lors du développement de programmes, il est parfois nécessaire d'effectuer directement certaines opérations sur ces données json dans le programme js, comme le tri, la recherche, etc., au lieu d'effectuer ces opérations sur la base de données via des requêtes AJAX. .
Aujourd'hui, je vais vous apprendre à utiliser les méthodes de tableau pour implémenter ces opérations :
/*假设json就是后台传过来的json数据*/ var test=[ { price:15, id:1, description:'这是第一个数据' },{ price:30, id:3, description:'这是第二个数据' },{ price:5, id:2, description:'这是第三个数据' } ];
À ce stade, vous pouvez utiliser la méthode de tri de le tableau pour trier les données json Pour le tri, nous pouvons l'encapsuler dans une fonction pour un fonctionnement pratique.
var u=window.u||{}; u.isArray=function(o) { return typeof o=='object'&&Object.prototype.toString.call(o).slice(8,-1).toLowerCase()=='array'; }; /** * 对json数据按照一定规则进行排列 * @param {array} array [需要排序的数组] * @param {string} type [排序时所依据的字段] * @param {boolean} asc [可选参数,默认降序,设置为true即为升序] * @return {none} [无返回值] */ u.sort=function(array,type,asc) { if(!u.isArray(array)) throw new Error('第一个参数必须是数组类型'); var asc=asc||false; array.sort(function(a,b) { if(!asc) { return parseFloat(b[type])-parseFloat(a[type]); } else { return parseFloat(a[type])-parseFloat(b[type]); } }); };
Vous pouvez également rechercher des données json via la méthode de filtrage du tableau. Nous pouvons les encapsuler dans une fonction pour une utilisation facile.
/** * 对json数组进行搜索 * @param {array} array [需要排序的数组] * @param {string} type [需要检索的字段] * @param {string} value [字段中应包含的值] * @return {array} [包含指定信息的数组] */ u.search=function(array,type,value) { if(!u.isArray(array)) throw new Error('第一个参数必须是数组类型'); var arr=[]; arr=array.filter(function(a) { return a[type].toString().indexOf(value)!=-1; }); return arr; };
Vous pouvez utiliser la méthode suivante pour tester :
u.sort(test,'price'); var s=u.search(test,'description',"一"); console.table(test); console.table(s);
Les résultats du test sont les suivants montré ci-dessous :
(index) | prix | id | description |
---|---|---|---|
0 | 30 | 3 | "Ceci sont les deuxièmes données" |
1 | 15 | 1 | "Ceci sont les premières données" |
2 | 5 | 2 | «这是第三个数据» |
Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!