国产探花免费观看_亚洲丰满少妇自慰呻吟_97日韩有码在线_资源在线日韩欧美_一区二区精品毛片,辰东完美世界有声小说,欢乐颂第一季,yy玄幻小说排行榜完本

首頁 > 開發 > JS > 正文

深入聊聊Array的sort方法的使用技巧.詳細點評protype.js中的sortBy方

2024-09-06 12:42:37
字體:
來源:轉載
供稿:網友
Array.prototype.sort方法是對數組進行排序, 該方法帶一個函數參數,用來指定排序的規則.

我們先來看看sort 的簡單應用:


var arr=[2,1,3,4];
alert(arr.sort())  // [1,2,3,4] 從小到大排列

//現在由大到小排列  得到 [4,3,2,1]
alert(arr.sort(function(left,right){return left>right?-1:1}))

//這里,sort方法通過參數函數的返回值 1或者-1來決定是順排還是倒排

還記得我以前和大家說過的 利用 Function.apply 方法來獲取數組中的最大元素的方法嗎?
文中用了兩種不同的方法來獲取數組中的最大值.
現在 sort也可以來秀一下了.

var arr=[2,1,3,4];
var minValue=arr.sort()[0];
var maxValue=arr.sort()[arr.length-1]   //  arr.sort().pop()

 怎么樣,這也是一種另類實現方法吧,還不用寫循環遍歷. 
不過,我必須要指出的是,這種方法的效率是最低的,對于幾十個百來個元素的數組,你還是可以使用這種技巧.
但是,如果數組很大,用 sort()方法可以慢得讓你想抽煙

進一步討論 sort 對復雜數據結構的排序.
1. 對多維數組的排序


var arr=[
             [2,1,55,4],
             [5,3,22,3],
             [1,2,77,2],
             [9,4,33,5],
          ];                 
alert("默認按第一列排/n"+arr.sort().join("/n"))  
alert("現在按第三列排/n"+arr.sort(function(left,right){return left[2]>right[2]?1:-1}).join("/n"))  
alert("現在按第三列倒排/n"+arr.sort(function(left,right){return left[2]>right[2]?-1:1}).join("/n"))  
2.對復雜數據結構的排序

Array.prototype.each=function(f){for(var i=0;i<this.length;i++) f(this[i],i,this)}
function showName(item){alert(item.name)}; //打印名字

var arr=[
             {name:"bill",money:500},
             {name:"go_rush",money:400},
             {name:"dudu",money:9000}
          ];                 
//依次顯示 dudu,bill,go_rush 看來dudu是最有錢的,而我是最窮的
發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
主站蜘蛛池模板: 白朗县| 营山县| 台湾省| 杭州市| 阳山县| 云梦县| 武义县| 西贡区| 根河市| 河间市| 皮山县| 南投市| 墨江| 广平县| 柞水县| 兰考县| 巴林右旗| 剑川县| 新昌县| 温泉县| 洛阳市| 蕉岭县| 太原市| 绿春县| 凉城县| 通州区| 区。| 抚顺市| 定远县| 冷水江市| 合川市| 兴业县| 慈溪市| 富源县| 霍邱县| 南木林县| 长葛市| 毕节市| 蒲城县| 疏勒县| 鹿泉市|