理解sort中的比較函式

2021-10-10 20:44:02 字數 1683 閱讀 9842

sort()方法是陣列自帶的一種排序方法,為了實現排序sort方法會預設呼叫每個陣列項的tostring轉型方法

然後比較得到的字串

sort方法接收乙個比較函式,比較函式有兩個引數,如果第乙個引數應該位於第二個引數之前則返回負數,如果相等返回0,如果第乙個引數應該位於第二個引數之後則返回正數

1.當元素為字串時

比較元素的第一位,第一位相同後比較第二位

var arr =

["cb"

,"a"

,"g"

,"cy"];

arr.

sort()

;console.

log(arr)

;//["a","cb","cy","g"]

2.當元素為數字時

預設將數字 當作字串比較,先比較第一位,第一位相同時在比較後一位。

var arr2 =[20

,13,11

,8,0

,11];

arr2.

sort()

;console.

log(arr2)

;//[0,11,11,13,20,8]

3. 控制sort()方法的排序方式

var arr2 =[20

,13,11

,8,0

,11];

//按公升序排列

arr2.

sort

(function

(a,b));

console.

log(arr2)

;//[0,8,11,11,13,20]; 新陣列按公升序排列

//按降序排列

arr2.

sort

(function

(a,b));

console.

log(arr2)

;//[20,13,11,11,8,0]; 新陣列按降序排列

//隨機排序

arr2.

sort

(function

(a,b));

console.

log(arr2)

;//新陣列隨機排序

let arr =[1

,23,3

]// sort方法接收乙個比較函式作為引數

arr.

sort

(function

(a, b))

console.

log(arr)

;

sort方法通過某個屬性值排序物件陣列
function

getcomputedfn

(propertyname)

else

if(value1 < value2)

else}}

let arr =[,

,,,,

] arr.

sort

(getcomputedfn

('id'))

; console.

log(arr)

;

C 中sort的比較函式寫法

c 中sort的比較函式寫法,有需要的朋友可以參考下。定義排序函式 方法1 宣告外部比較函式 bool less const student s1,const student s2 std sort sutvector.begin stuvector.end less 注意 比較函式必須寫在類外部 ...

在類中定義sort的比較函式

我宣告了乙個類,類中成員函式呼叫了二維vector引數 candidate set,如下 class staridentify 公升序函式定義如下 bool staridentify lesssort vector a,vector b 想在函式identify basis pair中呼叫vecto...

如何自定義sort函式中的比較函式

參考鏈結 題目描述 輸入乙個正整數陣列,把陣列裡所有數字拼接起來排成乙個數,列印能拼接出的所有數字中最小的乙個。例如輸入陣列,則列印出這三個數字能排成的最小數字為321323。思路 自定義比較器,若a b b a則a b,即 3 23 23 3 則3 23,並且我們希望在排序的時候將23排在3的前面...