使用洗牌算法生成随机长度的base64串

249 阅读1分钟

定义

function shuffle(arr, size) {
    arr = arr.split('')
    size = size ? Math.min(arr.length,size) : arr.length
    for (let i = 0; i < size; i++) {
        const randomIndex = Math.floor(Math.random() * arr.length)
        const item = arr[randomIndex]
        arr[randomIndex] = arr[i]
        arr[i] = item
    }
    arr.length = size
    return arr.join('')
}

使用

shuffle('abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789+/') //output:  w/0+sNevdmrxhcPXyWplCBLFgjH6UKOIYJ84ozAn7SGk23R9TEaVqDZiQftu1bM5

shuffle('abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789+/',20) //output:  otTJgeS9r+YPnczVHGyi

shuffle('abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789+/',100) //output:  jecGXbZuH9xLoBnd7WrzF86UDvwM1RhafPNVi0JSE2Ylqt5KQT/pk3g4sC+AyImO