需求是這樣的
專案中需要對一個陣列中的元素進行亂序,隨機推薦
簡單模擬一下
思路:
1.從還沒有修改的陣列中生成一個0-陣列長度之間的亂數randomIndex
2. 找出陣列中下標randomIndex的數,push到新的陣列中最后然后,
3. 結束的條件是原陣列的長度為0,跳出回圈
let arr = [1,2,3,4,5] // 需要打亂的陣列
let shuffle = function(arr) {
let result = new Array(), randomIndex;
// 條件判斷,只要arr.length > 0 就走while回圈里面的
while(arr.length > 0) {
/*
Math.random() 0 - 1
arr.length n
Math.random() * arr.length 0 - n(但是不等于5)
結果: 0 - (n-1)
*/
randomIndex = Math.floor(Math.random() * arr.length) // 得到陣列范圍內下標
result.push(randomIndex, 1)
arr.splice(randomIndex, 1)
}
return result;
}
console.log(shuffle(arr))
轉載請註明出處,本文鏈接:https://www.uj5u.com/qita/253057.html
標籤:其他
上一篇:35歲的程式員:第19章,過年
