1. 程式人生 > >初學者對js中sort()方法的理解。

初學者對js中sort()方法的理解。

定義和用法

sort() 方法用於對陣列的元素進行排序。

語法

arrayObject.sort(sortby)
引數 描述
sortby 可選。規定排序順序。必須是函式。

返回值

對陣列的引用。請注意,陣列在原陣列上進行排序,不生成副本。

說明

如果呼叫該方法時沒有使用引數,將按字母順序對陣列中的元素進行排序,說得更精確點,是按照字元編碼的順序進行排序。要實現這一點,首先應把陣列的元素都轉換成字串(如有必要),以便進行比較。

如果想按照其他標準進行排序,就需要提供比較函式,該函式要比較兩個值,然後返回一個用於說明這兩個值的相對順序的數字。比較函式應該具有兩個引數 a 和 b,其返回值如下:

  • 若 a 小於 b,在排序後的陣列中 a 應該出現在 b 之前,則返回一個小於 0 的值。
  • 若 a 等於 b,則返回 0。
  • 若 a 大於 b,則返回一個大於 0 的值
以上摘自w3c。例項連結http://www.w3school.com.cn/jsref/jsref_sort.asp 最初看這份文件的介紹時看不大懂。sort方法有一個可選引數,這個引數如果使用的話則指定一個比較函式,通過比較函式的返回值來決定排序順序。而這個在sort呼叫比較函式時,只調用比較函式的名字,而不會寫出具體傳輸的引數,但是引數實際上是會傳遞給比較函式的,傳遞的引數型別是呼叫sort方法的陣列元素的型別,比如字串型別、tr型別等等。
再說一下比較函式的意義。比較函式我個人理解就是告訴sort怎麼來排序,預設傳參(A,B)注意此處的順序。 比如說比較函式中比較A和B兩個數字,如果我要按升序來排列,則對A和B在比較函式內先比較他們的大小,如果A>B,則返回一個大於0的數,如果A<B,則返回一個小於0的數,則B會排在A後面,若A=B,則返回0。 反之我要用降序排列,若A>B,則返回一個小於0的數,B會排在A後面,若B>A,則返回一個大於0的數,B在A先。,若A=B,返回0。

相關推薦

初學者jssort方法理解

定義和用法 sort() 方法用於對陣列的元素進行排序。 語法 arrayObject.sort(sortby) 引數 描述 sortby 可選。規定排序順序。必須是函式。 返回值 對陣列的引用。請注意,陣列在原陣列上進行排序,不生成副本。 說明 如果

jssort方法的用法,引數以及排序原理

sort() 方法用於對陣列的元素進行排序。 語法:arrayObject.sort(sortby);引數sortby可選。規定排序順序。必須是函式。 注:如果呼叫該方法時沒有使用引數,將按字母順序對陣列中的元素進行排序,說得更精確點,是按照字元編碼的順序進行排序。要實現這一點,首先應把陣列的元素都轉換成字

jstofixed方法

toFixed() 方法可把 Number 四捨五入為指定小數位數的數字。var num = new Number(13.37); document.write (num.toFixed(1))//13.4

js寫css方法,記得加引號“ ”,除非是數字

pos 引號 index size z-index roi absolut fff dex js寫css()方法,記得加引號“ ”,除非是數字。如: $("#android").css({ "position": "absolute", "z-index":

ArrayListremove方法刪除長度大於5的元素之後下標重定位的問題

com 有一個 fad 就刪除 成了 位置 p s cnblogs 中心 1、問題闡述 需求: 有一個ArrayList數組,要求刪除長度大於5的字符串,如:arr = {"ab1","123ad","bca","dadfadf","dddaaa","你好啊","我來

ArrayList排序Sort方法(轉)

ray list pro 簡單 read 排序 adl array 簡單的 //使用Sort方法,可以對集合中的元素進行排序。Sort有三種重載方法,聲明代碼如下所//示。 public void Sort(); //使用集合元素的比較方式進行排序 public vo

jsonchange的使用,實現功能,選擇哪一張圖片,顯示哪一張

pla option type oct 圖片 script www () height 1 <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/x

js 的filter方法

nbsp undefine index 篩選 兼容 [] 返回 算法 插入 filter()方法使用指定的函數測試所有元素,並創建一個包含所有通過測試的元素的新數組。 filter()基本語法: arr.filter(callback[, thisA

jseval函式的使用

1.eval() 函式作用:可以接受一個字串str作為引數,並把這個引數作為指令碼程式碼來 執行。 2.引數情況:(1)如果引數是一個表示式,eval() 函式將執行表示式;          

Collections.sort方法和lambda表示式結合實現集合的排序

1.使用Collections.sort()實現集合的排序,這裡的方法具體指的是:   Collections.sort(List list, Compatator c)       第一個引數:為要進行排序的集合。     第二個引數:Compatator的實現,指定排序的方式。   2

JavaScriptArray物件join方法的例子

//join()方法用於把陣列中的所有元素放入一個字串 //其中元素是通過指定的分隔符進行分割 var arr = new Array(3); arr[0] = "George"; arr[1] = "John"; arr[2] = "Thom

Java 集合List及MapforEach方法

我們先看一個forEach()方法遍歷List集合的例子: //使用com.google.guava包建立集合 List<String> list =Lists.newArrayList("a","b","c","d");

Map集合value方法與keySet、entrySet()區別

Map<String,String> map = new HashMap<String,String>();map.put(“01”, “zhangsan”);map.put(“02”, “lisi”);map.put(“03”, “wangwu”);Collection<St

javasleep方法的解析

Thread.sleep(3000); 就是指讓當前正在執行的佔用cpu時間片的執行緒掛起3000ms,把cpu的時間片交給其他執行緒,但是並沒有指定把CPU的時間片接下來到底交給哪個執行緒,而是讓這些執行緒自己去競爭(一般作業系統會根據優先順序排程) 所以說讓當執行緒睡眠,是幫助所有執行緒獲得執行時間的最佳

hibernatedelete方法報錯處理方法

    @Override     public void del(Picture picture) {         session.beginTransaction();         System.out.println(picture.getId());   

JSeval函式的重要性

eval()函式的使用率很高,那總結我經常在編寫中使用場景: 1.用來將伺服器返回的json字串 轉換成json物件: eval(“(“+jsonStr+”)”); 當要

Java學習筆記23:JavacharAt方法的使用

此方法返回位於字串的指定索引處的字元。該字串的索引從零開始。 charAt(int index)方法是一個能夠用來檢索特定索引下的字元的String例項的方法. charAt()方法返回指定索引位置的char值。 索引範圍為0~length()-1. 如: str.charA

在定義類時,何時需要重寫Object類equals方法

在比較兩個物件時可以使用==和 equals()。==用於比較兩個物件的引用地址是否相等,而equals()方法主要用於比較兩個物件的內容是否相等。和equals()的差別請參見“和equals()有什麼區別?”的解答。 在 Object 中已定義了 equals()方法,但是該方法直接採用

java的API,學習object的類equals方法的問題,

一、什麼是API 即:Application Programing interface應用程式介面。就是javajdk中提供給我們使用的類,已經封裝好的,直接拿來用就行了。 二、Object類 object類是所有類的父類,在lang包中,lang包不用匯入。 介面中沒有構造方法

執行緒sleep方法和Object類的wait方法的區別

這兩者的施加者是有本質區別的. sleep()是讓某個執行緒暫停執行一段時間,其控制範圍是由當前執行緒決定,也就是說,線上程裡面決定.好比如說,我要做的事情是 "點火->燒水->煮麵",而當我點完火之後我不立即燒水,我要休息一段時間再燒.對於執行的主動權是由我