Sort()函數(shù)的多種用法
sort() 方法用于對數(shù)組的元素進行排序。包含于頭文件algorithm
語法
arrayObject.sort(sortby)
參數(shù) | 描述 |
---|---|
sortby | 可選。規(guī)定排序順序。必須是函數(shù)。 |
返回值
對數(shù)組的引用。請注意,數(shù)組在原數(shù)組上進行排序,不生成副本。
一、默認(rèn)情況
在默認(rèn)情況下, sort() 方法按升序排列數(shù)組項。為了實現(xiàn)排序, sort() 方法會調(diào)用每個數(shù)組項的 toString() 轉(zhuǎn)型方法,然后比較得到的字符串,已確定如何排序。如下:
var values = ["orange","apple","banana"]; values.sort(); console.log(values);//結(jié)果["apple", "banana", "orange"]
但是,即使數(shù)組中的每一項都是數(shù)值,sort() 方法比較的也是字符串,如下:
var values = [,,,,]; values.sort(); console.log(values);//結(jié)果[, , , , ]
二、對數(shù)值進行排序
sort() 方法可以接收一個比較函數(shù)作為參數(shù)。
比較函數(shù)接收兩個參數(shù),如果第一個參數(shù)應(yīng)該位于第二參數(shù)之前則返回一個負(fù)數(shù),如果兩個參數(shù)相等則返回0,如果第一個參數(shù)位于第二個之后則返回一個正數(shù)。
function compare(a, b){ return (a - b); }//按升序排列的比較函數(shù) var values = [,,,,]; values.sort(compare); console.log(values);//結(jié)果[, , , , ]
三、根據(jù)某個對象屬性對數(shù)組進行排序
先定義一個函數(shù),它接收一個屬性名,然后根據(jù)這個屬性名來創(chuàng)建一個比較函數(shù)。下面是這個函數(shù)的定義:
function createComparisonFunction(propertyName){ return function(object, object){ var a = object[propertyName]; var b = object[propertyName]; if(a < b){ return -; }else if(a > b){ return ; }else{ return ; } } }//返回一個根據(jù)屬性名創(chuàng)建的按升序排列的比較函數(shù)
在內(nèi)部函數(shù)接收到propertyName參數(shù)后,它會使用方括號表示法來取得給定屬性的值。
上面這個函數(shù)可以在像在下面例子中這樣使用。
var data = [{name:"Lily", age: }, {name:"Judy", age: }]; data.sort(createComparisonFunction("name")); console.log(data[].name);//Judy data.sort(createComparisonFunction("age")); console.log(data[].name);//Lily
以上內(nèi)容是小編給大家介紹的Sort()函數(shù)的多種用法,希望對大家以上幫助!
相關(guān)文章
JS日期格式化之javascript Date format
這篇文章主要介紹了JS日期格式化之javascript Date format的相關(guān)資料,需要的朋友可以參考下2015-10-10Javascript中string轉(zhuǎn)date示例代碼
string轉(zhuǎn)date的方法有很多,在接下來為大家介紹下Javascript中是如何做到的,感性取的朋友不要錯過2013-11-11javascript中的數(shù)據(jù)類型檢測方法詳解
這篇文章主要介紹了javascript中的數(shù)據(jù)類型檢測方法,結(jié)合實例形式分析了javascript數(shù)據(jù)類型并總結(jié)分析了常見的數(shù)據(jù)類型檢測操作技巧,需要的朋友可以參考下2019-08-08TypeScript中l(wèi)et和var的區(qū)別介紹
這篇文章主要介紹了TypeScript?let與var的區(qū)別,主要從作用域等這幾個方面做詳細(xì)介紹,本文通過實例代碼給大家介紹的非常詳細(xì),對大家的學(xué)習(xí)或工作具有一定的參考借鑒價值,需要的朋友可以參考下2022-07-07JavaScript手寫數(shù)組的常用函數(shù)總結(jié)
這篇文章主要給大家介紹了關(guān)于JavaScript手寫數(shù)組常用函數(shù)的相關(guān)資料,文中通過示例代碼介紹的非常詳細(xì),對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧2020-11-11原生JS版和jquery版實現(xiàn)checkbox的全選/全不選/點選/行內(nèi)點選(Mr.Think)
腳本之家小編之前整理不少checkbox全選全不選這方便的文章,但看了這篇以后發(fā)現(xiàn)實現(xiàn)方法更好2016-10-10