js数组乱序

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)

在这里插入图片描述

猜你喜欢

转载自blog.csdn.net/weixin_45950826/article/details/105248307
今日推荐