請問JavaScript陣列的sort 怎麼用?

時間 2021-06-08 13:51:06

1樓:田雅文

樓上的原理講的很準確了,這個function就是乙個comparator(比較函式),根據輸出結果的正負來決定a和b誰排在誰前面,有這樣乙個function,你就可以自定義你想要對乙個陣列的排序方法,這個function對那些存Ojbect的陣列的排序很是方便

下面給題主舉個栗子:

有乙個array叫students,存的是一票student,假設其中的object都大概長這樣

varstudent=;

那麼對studentNumber的排序方法就可以這樣寫:

function

sortStudentNumber

(studentA

,studentB

)當你想對students這個array按照student number排序的時候,你就可以這樣寫:

students.sort(sortStudentNumber);

舉例完畢,下面問題來了,挖掘。。。。啊不是,如果你想按studentName排序,你會怎麼寫捏?

2樓:

sort() 函式對數字進行大小比較的時候會對陣列中的每一項元素呼叫它的 toString() 方法,會導致最後的結果不如人意。所以給 sort() 傳入乙個比較函式可以避免這種情況的發生。傳入的匿名函式接受兩個引數,可以理解為代表的是要進行陣列中要進行比較的兩個元素,比如例子中的 33 和 4。

然後按照函式中的規則return a - b

進行排序。如果得到的結果小於 0,則在結果中 a 排在 b 的前面;如果等於 0,則保持不變;如果大於 0,則 a 排在 b 的後面。這樣就可以得到按照數字大小順序排列的結果了。

在 JavaScript 中,如何求出兩個陣列的交集和差集?

nbili 給個繞的寫法 let a stewed tomatoes and macaroni let b macaroni and cheese function intersect a,b else if b.includes a 0return a 0 intersect a.slice 1 ...

javascript中二維陣列多關鍵字排序問題?

rambo x 0 y 0 x 4 y 4 x 8 y 8 x 4 y 4 x 2 y 2 上面的語句你可以這麼看 varcache if x 0 y 0 else else return cache true 就把 x放前頭這樣寫可以看懂了吧 關於sort 個人理解 sort fn x,y 在沒有...

請問在javascript中undefined和null與其他字串的進行邏輯運算有什麼規律嗎?感覺好亂 這個有用嗎?

周中原 邏輯運算不一定返回false或者true,還有可能返回其他值。題主只問了undefined和null,另外送NaN的情況 免費 與 運算元中任意乙個是null undefined NaN,則返回對應的null undefined NaN 例如 null 任意型別 返回null 若兩個運算元是...