Maison  >  Article  >  interface Web  >  Comment implémenter le tri à bulles en JavaScript de manière encapsulée

Comment implémenter le tri à bulles en JavaScript de manière encapsulée

零到壹度
零到壹度original
2018-04-09 15:20:052299parcourir

Récemment, l'éditeur a étudié la vidéo JavaScript de Jiang Kun, qui parle de la méthode d'implémentation du tri à bulles en js, et obtient une bonne encapsulation et des changements flexibles. Pour un contenu spécifique, veuillez consulter le texte.

Code sans encapsulation

1. Une fois le code de base de ce code compris, il peut être complété facilement.

<script type="text/javascript">
	var arr=[1,6,3]; 
	//冒泡
	 for(var i=0;i<arr.length;i++){
           for(var j=0;j<arr.length-1-i;j++){
		     
			//核心排序
			if(arr[j]>arr[j+1]){
			   var t=arr[j];
			   arr[j]=arr[j+1];
			   arr[j+1]=t;
			  }
	    }

         }		 
			alert(arr);
			
</script>

Affichage en cours d'exécution :

                                                                             Diagramme fonctionnel :

La partie sur le passage des paramètres détermine l'ordre croissant et méthodes décroissantes f. Il existe deux méthodes. La valeur par défaut est d'utiliser l'ordre croissant sans ajouter de paramètres de méthode f, le code suivant :

<script type="text/javascript">                                                                                           
	     var arr=[1,6,3];             
	 //冒泡--添加了封装性的方法
             var mySort=function(arr,f){
	      for(var i=0;i<arr.length;i++){
                for(var j=0;j<arr.length-1-i;j++){
		     
			//核心排序依据			
			  if(f(arr[j],arr[j+1])>0){
			  var t=arr[j];
				 arr[j]=arr[j+1];
				 arr[j+1]=t;
			   }
		  }
                }
             };	 
              //传两个参数,一个待排序的数组,一个方法(判断是升序还是降序)
             //升序function(a,b){return a-b}; 
             mySort(arr,function(a,b){return b-a;});		
             alert(arr);
</script>

Comparaison

En utilisant la méthode encapsulée, vous pouvez modifier de manière flexible la méthode de tri, l'ordre décroissant et ascendant. Il vous suffit de modifier les conditions lors de la définition de la méthode f, et la méthode de tri encapsulée peut être facilement appelée.

                 //默认使用升序
		 //默认不传参,f的值为undefined
                 //第一种方法
		 f=f? f:function(a,b){return a-b;};
Résumé
                 //第二种方法
		 //利用逻辑或的逻辑中断
		 //js中的逻辑或运算,参与运算的数据不是Boolean类型时,若第一个操作数为真,着表达式是第一个操作数据
		 //若第一个表达式为假,则返回第二个操作数的值
		 f=f||function(a,b){return a-b;};

Concernant la méthode d'encapsulation, j'en ai acquis une bonne compréhension en JavaScript. Continuez à répéter,

Continuez à accumuler~~~

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!

Déclaration:
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