JavaScript實現數組亂序
阿新 • • 發佈:2017-09-01
效果 http 這就是 排序 ray 存在 cti 從大到小 cnblogs
通常我們用的最多的就是把一個無規則的數組按照從大到小或者從小到大的順序排列,然而有的時候我們可能會遇到將一個有序的數組打亂,實現隨機排序的效果,這就是我今天要給 大家介紹的內容了;
首先我在百度上尋找了一番,發現一個比較普遍的方法
1 function randArray(arr){ 2 return arr.sort(function(){ 3 return Math.random() - 0.5; 4 }); 5 }
然而,這種方法存在一些問題,甚至是錯誤,參考鏈接:https://www.h5jun.com/post/array-shuffle.html
而這裏有另外兩種比較實用的方法介紹給大家:
方法一:
function randArray(a) { var b = []; while (a.length > 0) { //每次遍歷一個a數組中的元素,再刪除該元素,直到a數組的長度為0; var index = parseInt(Math.random() * (a.length - 1)); b.push(a[index]); a.splice(index, 1); } return b; }
方法二:
functionrandArray(a){ var len = a.length; for (var i = 0; i < len - 1; i++) { var index = parseInt(Math.random() * (len - i)); var temp = a[index]; a[index] = a[len - i - 1]; a[len - i - 1] = temp; } return a; }
JavaScript實現數組亂序