js 陣列排序函式sort

2021-07-07 05:28:42 字數 1653 閱讀 4601

arrayobj.sort(sortfunction);

引數:sortfunction

可選項。是用來確定元素順序的函式的名稱。如果這個引數被省略,那麼元素將按照 ascii 字元順序進行公升序排列。

sort 方法將 array 物件進行適當的排序;在執行過程中並不會建立新的 array 物件。

如果為 sortfunction 引數提供了乙個函式,那麼該函式必須返回下列值之一:

負值,如果所傳遞的第乙個引數比第二個引數小。

零,如果兩個引數相等。

正值,如果第乙個引數比第二個引數大。

通過實際例子來了解sort函式

1.字串排序

var fruits 

=[

"banana", 

"orange", 

"mango"

]

fruits.

sort

()

fruits.

reverse

();

2.數字排序  

從小到大

var points 

=[

40,100,

1, 5,

25,10]

points.

sort

(

function

(a,b

))

//排序結果是1,5,10,25,40,100

從大到小

var points 

=[

40,100,

1, 5,

25,10]

points.

sort

(

function

(a,b

))

//排序結果是100,40,25,10,5,1

以上的方法在一維的排序還是很方便的,但像sql語句中的order by 一樣的多鍵值排序由怎麼做呢?

多維陣列的多鍵值排序,則需要複雜一些,但不需要用迴圈解決。實際解決的道理是一樣的 。

數字:

以下的例子是將數字的多維陣列按照第3列,像sql語句中的order by col。數字的時候可以直接兩個專案相減,以結果作為返回值即可。

字元:字元的時候sortfunction中的專案不能像數字一樣直接相減,需要呼叫

str1.localecompare( str2 )方法來作比較,從而滿足返回值。以下是多維陣列的第1,2列作排序的情況。

functionsortfunction

(array

)

)

}

Js陣列排序函式sort

js實現多維陣列和物件陣列排序,用的其實就是原生sort 函式,語法為 arrayobject.sort sortby sortby 可選。規定排序順序。必須是函式。返回值為對陣列的引用 請注意,陣列在原陣列上進行排序,不生成副本。如果呼叫該方法時沒有使用引數,將按字母順序對陣列中的元素進行排序,說...

Js 陣列排序函式sort

最近看到乙個js函式sort 覺得挺有意思,寫在這裡與大家分享。如果有什麼地方不對或者有更好的寫法,也請大家不吝賜教。sort 返回乙個元素已經進行了排序的 array 物件。1.按字母排序 直接使用sort 函式,預設按字母順序排。var arr new array dd aa bb cc arr...

理解js陣列的sort函式排序

每次用js的sort函式排序都容易犯錯誤,當時搞懂了一段時間就又忘了。現在來把它摟一摟。sort函式的用法 arr 3,2,1 arr.sort a,b 其實這個函式確實設計得有點奇怪,他讓你傳入乙個自己的函式來確實排序演算法,所以關鍵是自己怎麼來寫這個比較函式,關於這個返回值 我很容易就想到 tr...