Math.random
let arr = [1,2,3,4]
function fn(arr) {
for(let i=arr.length-1; i>=0; i--){
let j = Math.floor(Math.random()*(i+1))
let temp = arr[j]
arr[j] = arr[i]
arr[i] = temp
}
return arr
}
console.log(fn(arr)) //[4, 1, 3, 2]
打印程序的运行过程
let arr = [0, 1, 2, 3]
function fn(arr) {
for (let i = arr.length - 1; i >= 0; i--) {
let j = Math.floor(Math.random() * (i + 1))
console.log(j, "j")
console.log(arr, "arr")
console.log(arr[j], "arr[j]")
console.log(arr[i],"arr[i]")
let temp = arr[j]
arr[j] = arr[i]
arr[i] = temp
}
return arr
}
fn(arr)