亚洲精品久久久久久第一页-人妻少妇精彩视品一区二区三区-91国产自拍免费视频-免费一级a在线播放视频正片-少妇天天日天天射天天爽-国产大屁股喷水视频在线观看-操美女骚穴抽插性爱视频-亚洲 欧美 中文字幕 丝袜-成人免费无码片在线观看

新手必知數(shù)組排序實操步驟 對數(shù)組進行排序的方法( 二 )


v8 中實現(xiàn) sort() 方法時,采用了 ”插入排序“ 和 ”快速排序“ 兩種排序方式 。對于短數(shù)組(長度 <= 22)來說,插入排序效率更高 。如果沒有傳入 comparefn,則生成一個 comparefn 比較函數(shù) 。在自動生成的比較函數(shù)中,會將傳入的數(shù)組元素通過 TO_STRING 方法轉換為字符串,再行比較 。對比比較函數(shù)中的 b 為游標值,這一點和最新版的 chrome 瀏覽器表現(xiàn)不同 。我們在 sort 方法中傳入的函數(shù)用在了這里:
var order = comparefn(tmp, element);根據(jù)我們傳入函數(shù)的返回值,數(shù)組進行排序操作:
if (order > 0) {a[j + 1] = tmp;} else {break;}如果返回值(a-b)大于0,即 a > b, 則將當前拿來比較的值 a 復制給它的下一位,并繼續(xù)使用游標值 b 向前進行比較 。如果返回值小于等于 0,則結束比較,并將游標值 b 填在最后一次比較值 a 的后面 。總結不管是舊版本還是最新版本的 v8,它們的 sort() 方法的返回結果都沒有發(fā)生變化,只是內部的實現(xiàn)機理有了改變(肯定是向著更優(yōu)的方向改變) 。
為了是 sort() 的返回結果符合預期,我們給它傳入了一個函數(shù)作為比較規(guī)則 。
在比較函數(shù)中,因 v8 版本不同,實現(xiàn)機制有差異,導致它的參數(shù)意義也不大相同,所以我們暫時無需關心它里面參數(shù)的具體含義 。
比較函數(shù)如果寫完全的話,應該是:
arr.sort((a,b) => {const res = a - b;return res > 0 ? 1 : (res < 0 ? -1 : 0 );});即比較函數(shù)的返回值嚴格來說只有三個:-1、0 和 1。
我們主需要記住 return a – b 是升序排列,return b – a 是降序排列即可 。


以上關于本文的內容,僅作參考!溫馨提示:如遇健康、疾病相關的問題,請您及時就醫(yī)或請專業(yè)人士給予相關指導!

「愛刨根生活網」www.malaban59.cn小編還為您精選了以下內容,希望對您有所幫助: