Sort()函數(shù)的多種用法
來源:易賢網(wǎng) 閱讀:997 次 日期:2016-07-19 14:34:56
溫馨提示:易賢網(wǎng)小編為您整理了“Sort()函數(shù)的多種用法”,方便廣大網(wǎng)友查閱!

sort() 方法用于對數(shù)組的元素進行排序。包含于頭文件algorithm

語法

arrayObject.sort(sortby)

名單

返回值

對數(shù)組的引用。請注意,數(shù)組在原數(shù)組上進行排序,不生成副本。

一、默認情況

在默認情況下, 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ù)應該位于第二參數(shù)之前則返回一個負數(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ù)的多種用法,希望對大家以上幫助!

更多信息請查看網(wǎng)絡編程
易賢網(wǎng)手機網(wǎng)站地址:Sort()函數(shù)的多種用法

2025國考·省考課程試聽報名

  • 報班類型
  • 姓名
  • 手機號
  • 驗證碼
關于我們 | 聯(lián)系我們 | 人才招聘 | 網(wǎng)站聲明 | 網(wǎng)站幫助 | 非正式的簡要咨詢 | 簡要咨詢須知 | 新媒體/短視頻平臺 | 手機站點 | 投訴建議
工業(yè)和信息化部備案號:滇ICP備2023014141號-1 云南省教育廳備案號:云教ICP備0901021 滇公網(wǎng)安備53010202001879號 人力資源服務許可證:(云)人服證字(2023)第0102001523號
聯(lián)系電話:0871-65099533/13759567129 獲取招聘考試信息及咨詢關注公眾號:hfpxwx
咨詢QQ:1093837350(9:00—18:00)版權(quán)所有:易賢網(wǎng)