当前位置: 首页 > 编程笔记 >

JS 数组随机洗牌的实例代码

游炳
2023-03-14
本文向大家介绍JS 数组随机洗牌的实例代码,包括了JS 数组随机洗牌的实例代码的使用技巧和注意事项,需要的朋友参考一下

下面通过一段代码给大家介绍js 数组随机洗牌的方法,具体代码如下所示:

//先定义一个某数值范围内的随机数

function getRandom(min, max) {
 return Math.floor(Math.random() * (max - min + 1) + min)
}

// 克隆数组方法

/**
 * 克隆数组
 * @param {array} arr 原数组
 * @return {array}  新数组
 */
function cloneArr(arr) {
 // 从第一个字符就开始 copy
 // slice(start,end) 方法可从已有的数组中返回选定的元素。
 return arr.slice(0)
}

//洗牌

function shuffle(arr, flag = false) {
 // console.log('arr',arr)
 let newArr = []
 flag ? (newArr = arr) : (newArr = cloneArr(arr))

 for (let i = 0; i < newArr.length; i++) {
  let j = getRandom(0, i)
  let temp = newArr[i]
  newArr[i] = newArr[j]
  newArr[j] = temp
 }
 // console.log('arr',arr,newArr)

 return newArr
}
//调用
shuffle(list)//list一般为数组对象

总结

以上所述是小编给大家介绍的JS 数组随机洗牌的实例代码,希望对大家有所帮助,如果大家有任何疑问请给我留言,小编会及时回复大家的。在此也非常感谢大家对小牛知识库网站的支持!

 类似资料:
  • 本文向大家介绍JavaScript数组随机排列实现随机洗牌功能,包括了JavaScript数组随机排列实现随机洗牌功能的使用技巧和注意事项,需要的朋友参考一下 本文实例讲述了JavaScript数组随机排列实现随机洗牌功能的方法。分享给大家供大家参考。具体分析如下: 这段JS代码可以对数组内的元素进行随机排列,这个非常有用,比如我们在玩扑克牌的时候可以让扑克牌进行排列,也就是电脑洗牌。 希望本文所

  • Reference 关于乱序(shuffle)与随机采样(sample)的一点探究 - xybaby - 博客园 洗牌算法 Fisher–Yates shuffle - Wikipedia Knuth-Durstenfeld Shuffle(Fisher–Yates Shuffle 改进版) Knuth-Durstenfeld Shuffle 是一个“原地”(in-place)算法 伪代码 To

  • 本文向大家介绍C#实现随机洗牌的方法,包括了C#实现随机洗牌的方法的使用技巧和注意事项,需要的朋友参考一下 本文实例讲述了C#实现随机洗牌的方法。分享给大家供大家参考。具体实现方法如下: 希望本文所述对大家的C#程序设计有所帮助。

  • 本文向大家介绍JS生成不重复的随机数组的简单实例,包括了JS生成不重复的随机数组的简单实例的使用技巧和注意事项,需要的朋友参考一下 JS生成不重复的随机数组的简单实例 以上这篇JS生成不重复的随机数组的简单实例就是小编分享给大家的全部内容了,希望能给大家一个参考,也希望大家多多支持呐喊教程。

  • 本节用随机数产生器开发一个洗牌与发牌程序。这个程序可以用于实现玩某种牌的游戏程序。 为了解决一些微妙的性能问题,我们故意用次优洗牌与发牌算法。练习中要开发更有效的算法。 利用自上而下逐步完善的方法,我们开发一个程序,洗 52 张牌并发52张牌。自上而下逐步完善的方法在解决大而复杂的问题时特别有用。 我们用 4 x 13 的双下标数组 deck 表示要玩的牌(如图 5.23)。行表示花色,0 表示红

  • 本文向大家介绍C#实现洗牌游戏实例,包括了C#实现洗牌游戏实例的使用技巧和注意事项,需要的朋友参考一下 棋牌类游戏是目前比较火的游戏之一。今天本文就以实例形式实现洗牌游戏。本文实例所采用的算法是:遍历每个位置上的牌,然后与随机位置上的牌交换。 运行结果如下图所示: 对于牌来讲,2个关键的因素是面值和类型(如红桃、梅花等)。 代码如下: 客户端程序有3个方法,一个是初始化牌的数组,一个是遍历所有牌并