2017-10-21 80 views
-3

我是Javascript的初學者,現在我正在閱讀一本書,在那裏我很困惑與任務解決方案之一。 var arr = [1, 2, 3, 4, 5] :隨機排列的數組

在排序函數的幫助下,我們必須得到一個數組中的隨機順序。下面是筆者的解決方案`

function compareRandom(a, b) { 
 
return Math.random() - 0.5 ; 
 
} 
 
var arr = [1,2,3,4]; 
 
arr.sort(compareRandom); 
 
alert(arr); // elements are in a random order ` [3,5,1,2,4]

所以我無法理解的功能是如何工作的,它的實現一步一步來。有誰能解釋給我?

+3

您還沒有搜索。爲什麼? – Tomalak

+1

https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Array/sort –

+1

哦,來吧。他至少問了一個好問題。 –

回答

1

您作爲參數傳遞給函數進行排序的函數稱爲compareFunction,它是可選的。 compareFunction是一個定義替代排序順序的函數。該函數應返回一個負,零或正值,根據所述參數,如:

function(a, b){return a-b} 

當sort()方法比較兩個值,它發送的值的比較功能,和排序的值根據返回的(負,零,正)值。

實施例:

當比較40和100中,sort()方法調用比較功能(40100)。

函數計算40-100,並返回-60(負值)。 排序功能會將40排序爲低於100的值。