Maison > interface Web > js tutoriel > le corps du texte

Exemple détaillé de la façon dont JavaScript trie et recherche les données JSON

黄舟
Libérer: 2017-07-24 15:54:17
original
1803 Les gens l'ont consulté

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:'这是第三个数据'
  }
 ];
Copier après la connexion

À 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]);
   }
  });
 };
Copier après la connexion

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;
 };
Copier après la connexion

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);
Copier après la connexion

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!

Étiquettes associées:
source:php.cn
Déclaration de ce site Web
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn
Tutoriels populaires
Plus>
Derniers téléchargements
Plus>
effets Web
Code source du site Web
Matériel du site Web
Modèle frontal
À propos de nous Clause de non-responsabilité Sitemap
Site Web PHP chinois:Formation PHP en ligne sur le bien-être public,Aidez les apprenants PHP à grandir rapidement!