欧美bbbwbbbw肥妇,免费乱码人妻系列日韩,一级黄片

Sort()函數(shù)的多種用法

 更新時(shí)間:2016年03月20日 20:02:05   作者:oSHYo  
sort() 方法用于對(duì)數(shù)組的元素進(jìn)行排序。接下來(lái)通過(guò)本文給大家介紹Sort()函數(shù)的多種用法,對(duì)sort函數(shù)的用法相關(guān)知識(shí)感興趣的朋友一起學(xué)習(xí)

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

語(yǔ)法

arrayObject.sort(sortby)

參數(shù) 描述
sortby 可選。規(guī)定排序順序。必須是函數(shù)。

返回值

對(duì)數(shù)組的引用。請(qǐng)注意,數(shù)組在原數(shù)組上進(jìn)行排序,不生成副本。

一、默認(rèn)情況

在默認(rèn)情況下, sort() 方法按升序排列數(shù)組項(xiàng)。為了實(shí)現(xiàn)排序, sort() 方法會(huì)調(diào)用每個(gè)數(shù)組項(xiàng)的 toString() 轉(zhuǎn)型方法,然后比較得到的字符串,已確定如何排序。如下:

var values = ["orange","apple","banana"];
values.sort();
console.log(values);//結(jié)果["apple", "banana", "orange"]

但是,即使數(shù)組中的每一項(xiàng)都是數(shù)值,sort() 方法比較的也是字符串,如下:

var values = [,,,,];
values.sort();
console.log(values);//結(jié)果[, , , , ]

二、對(duì)數(shù)值進(jìn)行排序

sort() 方法可以接收一個(gè)比較函數(shù)作為參數(shù)。

比較函數(shù)接收兩個(gè)參數(shù),如果第一個(gè)參數(shù)應(yīng)該位于第二參數(shù)之前則返回一個(gè)負(fù)數(shù),如果兩個(gè)參數(shù)相等則返回0,如果第一個(gè)參數(shù)位于第二個(gè)之后則返回一個(gè)正數(shù)。

function compare(a, b){
return (a - b);
}//按升序排列的比較函數(shù)
var values = [,,,,];
values.sort(compare);
console.log(values);//結(jié)果[, , , , ]

三、根據(jù)某個(gè)對(duì)象屬性對(duì)數(shù)組進(jìn)行排序

先定義一個(gè)函數(shù),它接收一個(gè)屬性名,然后根據(jù)這個(gè)屬性名來(lái)創(chuàng)建一個(gè)比較函數(shù)。下面是這個(gè)函數(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 ;
}
}
}//返回一個(gè)根據(jù)屬性名創(chuàng)建的按升序排列的比較函數(shù)

在內(nèi)部函數(shù)接收到propertyName參數(shù)后,它會(huì)使用方括號(hào)表示法來(lái)取得給定屬性的值。

上面這個(gè)函數(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ù)的多種用法,希望對(duì)大家以上幫助!

相關(guān)文章

最新評(píng)論