JavaScript 如何實現陣列的隨機排序?

2021-07-17 00:18:36 字數 1428 閱讀 3944

第一種方法。

math.random()返回介於 0(包含) ~ 1(不包含) 之間的乙個隨機數。

這種方法是迴圈過程中通過math.random()函式產生的隨機值,在陣列中這個隨機值位置的數和arr[i]位置的資料交換,迴圈結束,產生隨機數組。

第二種方法。

splice() 方法用於插入、刪除或替換陣列的元素。

注意:這種方法會改變原始陣列!。

第二種辦法,建立乙個新的空陣列,並通過math.random()隨機得到小於陣列長度的randomindex,把原陣列中的arr[randomindex]有序的放到新陣列中。同時通過arr.splice(randomindex, 1)把剛放到新陣列中的資料刪除。以此類推,直至arr中沒有資料產生新的隨機數組。

var arr = [1, 2, 3, 4, 5, 6, 7, 8, 9, 10];

function

randsort2

(arr)

return mixedarray;

}console.log(randsort2(arr));

sort() 方法用於對陣列的元素進行排序。排序順序可以是字母或數字,並按公升序或降序。當不帶引數的時候預設排序順序為按字母公升序。

可以看出math.random()得到的是0~1之間的隨機數。眾所周知,sort()可以呼叫乙個函式做為引數,如果這個函式返回的值為-1表示陣列中的a項排在b項前。如此一來,可以寫乙個隨機函式,讓math.random()隨機出來的數與0.5做為乙個比較,如果大於.5就返回 -1(a排在b前面),反之返回1(b排在a前面)。

var arr = [1, 2, 3, 4, 5, 6, 7, 8, 9, 10];

arr.sort(function

() )

console.log(arr);

如何在 JavaScript 中更好地使用陣列

本文短小精悍,我保證。在過去的數個月裡,我注意到在我審閱的 pull request 中有四個 關於陣列使用的 錯誤經常出現。同時,我自己也會犯這些錯誤,因此有了這篇文章。讓我們一起學習,以確保以後能正確地使用陣列方法!use strict const characters ironman blac...

javascript 四數之和LeetCod 18

給定乙個包含 n 個整數的陣列nums和乙個目標值target,判斷nums中是否存在四個元素 a,b,c 和 d 使得 a b c d 的值與target相等?找出所有滿足條件且不重複的四元組。注意 答案中不可以包含重複的四元組。var foursum function nums,target 先...

javascript醜數的解法

第一種 沒有看其他解法,自己寫的解法 1.寫乙個無限迴圈,然後如果當前數是醜數,則count 2.如果count n 則湊齊了n個醜數,返回 3.如果當前數不在醜數集合中 初始化為 1,2,3,5 4.如果當前醜數大於6,則需要判斷,如果這個數的約數只有1和他本身,則這個數不是醜數 5.進行拆分,判...