Javascript

js 手写随机数组 洗牌算法 数组乱序

本文主要是介绍js 手写随机数组 洗牌算法 数组乱序,对大家解决编程问题具有一定的参考价值,需要的程序猿们随着小编来一起学习吧!

取最后一张,随机得到0~length-1的索引,与第一张交换位置
取导出第二张,随机得到0~length-1-1的索引,与第二张交换位置
以此类推
取导出第i张,随机得到0~length-i-1的索引,与第i张交换位置

    const shuffle = arr => {
        const len = arr.length
        for (let i = 0; i < len; i++) {
            const replace = Math.floor(Math.random() * (len - i - 1))
            ;[arr[i], arr[replace]] = [arr[replace], arr[i]]
            // arr.splice(i, 1, ...arr.splice(replace, 1, arr[i])) // swap
        }
        return arr
    }
    console.log(shuffle([1, 2, 3, 4, 5, 6]))
这篇关于js 手写随机数组 洗牌算法 数组乱序的文章就介绍到这儿,希望我们推荐的文章对大家有所帮助,也希望大家多多支持为之网!