最近小編在學習蔣坤的JavaScript視頻,裡面談到了js中實現冒泡排序的方法,並且做到了很好的封裝,以及靈活變動。具體的內容,請看正文。
未使用封裝的程式碼
1.這段程式碼裡面的核心程式碼理解了,就很好完成。
<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>
運作顯示:
##
其中關於傳參的部分,決定是升序和降序的方法f,可以有兩種方法,實現預設使用升序,不添加f的方法參數,如下的程式碼: 使用封裝的方法,可以靈活地更改排序的方式,降序和升序。只需要在定義f這個方法時,更改一下條件即可,並且封裝好的排序方法,可以方便呼叫。 小結 關於封裝的方法,在JavaScript中又得到了很好的學習認知。 不斷反复, # 以上是JavaScript如何以封裝的方式實現冒泡排序的詳細內容。更多資訊請關注PHP中文網其他相關文章!<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>
//默认使用升序
//默认不传参,f的值为undefined