当前位置: 首页 > 面试题库 >

写个方法随机打乱一个数组

锺离逸春
2023-03-14
本文向大家介绍写个方法随机打乱一个数组相关面试题,主要包含被问及写个方法随机打乱一个数组时的应答技巧和注意事项,需要的朋友参考一下

两个思路

  • 随机交换
function shuffle(arr) {
    arr.forEach((_, idx) => {
        const targetIdx = Math.floor(Math.random() * arr.length)
        ;[arr[idx], arr[targetIdx]] = [arr[targetIdx], arr[idx]]
    })
    return arr
}

shuffle([1, 2, 3, 4, 5, 6, 7, 8, 9, 10])
// => [6, 4, 1, 8, 5, 2, 10, 9, 3, 7] or else
  • 打乱下标(慢了 300-1000 倍左右)
function shuffleSubscript(n) {
    const arr = new Array(n)
    for (let i = 0; i < n; i++) {
        let val
        do val = Math.floor(Math.random() * n)
        while (arr.includes(val))
        arr[i] = val
    }
    return arr
}

function shuffle(arr) {
    return shuffleSubscript(arr.length).map(s => arr[s])
}

shuffle([1, 2, 3, 4, 5, 6, 7, 8, 9, 10])
// => [7, 4, 5, 8, 6, 3, 1, 2, 10, 9] or else
 类似资料:
  • 本文向大家介绍写一个方法从数组中随机抽取N个不重复的元素相关面试题,主要包含被问及写一个方法从数组中随机抽取N个不重复的元素时的应答技巧和注意事项,需要的朋友参考一下

  • 本文向大家介绍写一个方法随机生成指定位数的字符串相关面试题,主要包含被问及写一个方法随机生成指定位数的字符串时的应答技巧和注意事项,需要的朋友参考一下 function getStringBylength(nlength) { var str = ""; var arr = ['0', '1', '2', '3', '4', '5', '6', '7', '8', '9', 'a', 'b', '

  • 问题 你想要获得两个整数(包含在内)之间的一个随机整数。 解决方案 使用以下的函数。 randomInt = (lower, upper) -> [lower, upper] = [0, lower] unless upper? # 用一个参数调用 [lower, upper] = [upper, lower] if lower > upper #

  • 本文向大家介绍python 随机打乱 图片和对应的标签方法,包括了python 随机打乱 图片和对应的标签方法的使用技巧和注意事项,需要的朋友参考一下 如下所示: 以上这篇python 随机打乱 图片和对应的标签方法就是小编分享给大家的全部内容了,希望能给大家一个参考,也希望大家多多支持呐喊教程。

  • 问题内容: 我需要随机调整以下数组: 问题答案: 可以使用如下代码实现:

  • 本文向大家介绍向一个数组中插入一个1~100的随机数,包括了向一个数组中插入一个1~100的随机数的使用技巧和注意事项,需要的朋友参考一下