1. 程式人生 > 其它 >8.陣列中常用的一些方法(整理中)

8.陣列中常用的一些方法(整理中)

array.prototype.sort()

對陣列進行排序,返回排序後的陣列。注意:陣列是原地排序。

語法:arr.sort([compareFunction])

compareFunction可選用來指定按某種順序進行排列的函式。如果省略,元素按照轉換為的字串的各個字元的Unicode位點進行排序。

firstEl第一個用於比較的元素。
secondEl第二個用於比較的元素。

如果沒有指明compareFunction,那麼元素會按照轉換為的字串的諸個字元的Unicode位點進行排序。例如 "Banana" 會被排列到 "cherry" 之前。當數字按由小到大排序時,9 出現在 80 之前,但因為(沒有指明compareFunction

),比較的數字會先被轉換為字串,所以在Unicode順序上 "80" 要比 "9" 要靠前。

如果指明瞭compareFunction,那麼陣列會按照呼叫該函式的返回值排序。即a和b是兩個將要被比較的元素:

  • 如果compareFunction(a,b)小於0,那麼a會被排列到b之前;
  • 如果compareFunction(a,b)等於0,a和b的相對位置不變。備註:ECMAScript標準並不保證這一行為,而且也不是所有瀏覽器都會遵守(例如 Mozilla 在 2003 年之前的版本);
  • 如果compareFunction(a,b)大於0,b會被排列到a之前。
  • compareFunction(a,b)
    必須總是對相同的輸入返回相同的比較結果,否則排序的結果將是不確定的。

1 var numbers = [4, 2, 5, 1, 3];
2 numbers.sort((a, b) => a - b);
3 console.log(numbers);
4 
5 // [1, 2, 3, 4, 5]