日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 人文社科 > 生活经验 >内容正文

生活经验

javascript数组排序和prototype详解

發布時間:2023/11/27 生活经验 46 豆豆
生活随笔 收集整理的這篇文章主要介紹了 javascript数组排序和prototype详解 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

原型的概念::原型對象里的所有屬性和方法 被所有構造函數實例化出來的對象所共享,類似于java中的 static

正因為共享所以單一的操作 就會影響了全局,因此使用時需注意

?

基于prototype:為數組擴展方法

//獲取數組最大值
function getMax(){var max
=this[0];for(var i=0;i<this.length;i++){if(max<this[i]){max=this[i];}}return max; }
//獲取數組最小值 function getMin(){var min
=0;for(var x=0;x<this.length;x++){if(this[x]<this[min]){min=x;}}return this[min]; } Array.prototype.getMax=getMax; Array.prototype.getMin=getMin;

?

?

作者曾經在js開發時候經常用到數組的排序,以下是作者對數組排序的總結以及其他方法的擴展

var Array={};
Array.sorting = {//利用sort方法進行排序
    systemSort: function(arr){return arr.sort();},//冒泡排序
    bubbleSort: function(arr){var len=arr.length, tmp;for(var i=0;i<len-1;i++){for(var j=0;j<len-1-i;j++){if(arr[j]>arr[j+1]){tmp = arr[j];arr[j] = arr[j+1];arr[j+1] = tmp;}}}return arr;},//快速排序
    quickSort: function(arr){var low=0, high=arr.length-1;sort(low,high);function sort(low, high){if(low<high){var mid = (function(low, high){var tmp = arr[low];while(low<high){while(low<high&&arr[high]>=tmp){high--;}arr[low] = arr[high];while(low<high&&arr[low]<=tmp){low++;}arr[high] = arr[low];}arr[low] = tmp;return low;})(low, high);sort(low, mid-1);sort(mid+1,high);}}return arr;},//插入排序
    insertSort: function(arr){var len = arr.length;for(var i=1;i<len;i++){var tmp = arr[i];for(var j=i-1;j>=0;j--){if(tmp<arr[j]){arr[j+1] = arr[j];}else{arr[j+1] = tmp;break;}}}return arr;},//希爾排序
    shellSort: function(arr){console.log(arr);var h = 1;while(h<=arr.length/3){h = h*3+1;  //O(n^(3/2))by Knuth,1973
        }for( ;h>=1;h=Math.floor(h/3)){for(var k=0;k<h;k++){for(var i=h+k;i<arr.length;i+=h){for(var j=i;j>=h&&arr[j]<arr[j-h];j-=h){var tmp = arr[j];arr[j] = arr[j-h];arr[j-h] = tmp;}}}}return arr;},printArray:function (arr){var str="[";for(var x=0;x<arr.length;x++){if(x!=arr.length-1){str+=arr[x]+",";}else{str+=arr[x]+"]";}}//alert(str);return str;},show:function(arr){for(var x=0;x<arr.length;x++){for(var y=x+1;y<arr.length;y++){if(arr[x]>arr[y]){var temp=arr[x];arr[x]=arr[y];arr[y]=temp;}}}    }
}

?

轉載于:https://www.cnblogs.com/weishao-lsv/p/8145467.html

總結

以上是生活随笔為你收集整理的javascript数组排序和prototype详解的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。