2015-11-07 42 views
1

我正在閱讀JavaScript的Web開發第三版,我堅持如何工作。我瞭解比較功能的工作原理。但是values.sort(比較);迷惑了我。比較看兩個參數並進行比較。但我不通過2個參數。即使我向函數傳遞了2個參數,它如何將它自己與數組中的其餘項進行比較?排序函數是否在背景中做了一些我不知道的事情?如果是這樣,它是如何工作的? 預先感謝您:)如何排序比較得到它的數組參數

function compare(value1, value2) 
 
{ 
 
if (value1 < value2) { 
 
return 1; 
 
} else if (value1 > value2) { 
 
return -1; 
 
} else { 
 
return 0; 
 
} 
 
} 
 

 
var values = [0, 1, 5, 10, 15]; 
 
values.sort(compare); 
 
alert(values); //15,10,5,1,0

回答

0

比較功能爲你提供給排序函數的調用回調函數。排序功能將使用一些算法對列表進行排序。當排序函數的算法需要比較列表中的兩個項目時,排序方法將與兩個項目調用比較函數。

+0

我明白了。謝謝你的回覆:)所以排序算法會看到我有一個x數組的數組,並自動獲取數組中的2個項目,並將它們遞歸用於我的比較函數,直到它被排序爲止? – David

+0

那裏沒有遞歸。檢查一些排序算法,例如冒泡排序並自己實現。那麼你將能夠做到比較功能的目的是什麼。 – zerkms