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


Posted in Javascript onSeptember 12, 2018

下面通过一段代码给大家介绍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动画之圆形运动,环绕鼠标运动作小球
Jul 20 Javascript
JS解析json数据并将json字符串转化为数组的实现方法
Dec 25 Javascript
js函数定时器实现定时读取系统实时连接数
Apr 30 Javascript
jQuery中使用each处理json数据
Apr 23 Javascript
javascript中返回顶部按钮的实现
May 05 Javascript
jquery实现点击查看更多内容控制段落文字展开折叠效果
Aug 06 Javascript
Vue filters过滤器的使用方法
Jul 14 Javascript
浅谈Node.js ORM框架Sequlize之表间关系
Jul 24 Javascript
React Native预设占位placeholder的使用
Sep 28 Javascript
详解Vue组件之间通信的七种方式
Apr 14 Javascript
layui富文本编辑器前端无法取值的解决方法
Sep 18 Javascript
js实现验证码干扰(动态)
Feb 23 Javascript
使用RN Animated做一个“添加购物车”动画的方法
Sep 12 #Javascript
小程序组件之仿微信通讯录的实现代码
Sep 12 #Javascript
Vue弹出菜单功能的实现代码
Sep 12 #Javascript
angular4中*ngFor不能对返回来的对象进行循环的解决方法
Sep 12 #Javascript
详解SPA中前端路由基本原理与实现方式
Sep 12 #Javascript
对angular2中的ngfor和ngif指令嵌套实例讲解
Sep 12 #Javascript
vue-cli 使用axios的操作方法及整合axios的多种方法
Sep 12 #Javascript
You might like
PHP的ASP防火墙
2006/10/09 PHP
php 无法加载mysql的module的时候的配置的解决方案引发的思考
2012/01/27 PHP
浅谈web上存漏洞及原理分析、防范方法(安全文件上存方法)
2013/06/29 PHP
PHP网页游戏学习之Xnova(ogame)源码解读(十五)
2014/06/30 PHP
php实现斐波那契数列的简单写法
2014/07/19 PHP
php模拟服务器实现autoindex效果的方法
2015/03/10 PHP
PHP新建类问题分析及解决思路
2015/11/19 PHP
jquery 常用操作方法
2010/01/28 Javascript
幻灯片带网页设计中的20个奇妙应用示例小结
2012/05/27 Javascript
Jquery中的层次选择器与find()的区别示例介绍
2014/02/20 Javascript
JavaScript实现倒计时代码段Item1(非常实用)
2015/11/03 Javascript
整理AngularJS框架使用过程当中的一些性能优化要点
2016/03/05 Javascript
JavaScript禁止复制与粘贴的实现代码
2016/05/16 Javascript
JavaScript常用判断写法大全(推荐)
2016/05/30 Javascript
把多个JavaScript函数绑定到onload事件处理函数上的方法
2016/09/04 Javascript
node.js学习之断言assert的使用示例
2017/09/28 Javascript
微信小程序公用参数与公用方法用法示例
2019/01/09 Javascript
微信小程序实现抖音播放效果的实例代码
2020/04/11 Javascript
Python网络爬虫项目:内容提取器的定义
2016/10/25 Python
Python基于递归算法实现的走迷宫问题
2017/08/04 Python
Python基于递归算法求最小公倍数和最大公约数示例
2018/07/27 Python
python获取时间及时间格式转换问题实例代码详解
2018/12/06 Python
Python数据类型之Dict字典实例详解
2019/05/07 Python
Python整数对象实现原理详解
2019/07/01 Python
Python3中的最大整数和最大浮点数实例
2019/07/09 Python
python实现飞行棋游戏
2020/02/05 Python
如何在sublime编辑器中安装python
2020/05/20 Python
SEPHORA丝芙兰德国官方购物网站:化妆品、护肤品和香水
2020/01/21 全球购物
C#面试题
2016/05/06 面试题
大专自我鉴定范文
2013/10/01 职场文书
出生证明公证书
2014/04/09 职场文书
户外宣传策划方案
2014/05/25 职场文书
文明城市标语
2014/06/16 职场文书
党校学习心得体会范文
2014/09/09 职场文书
师德师风整改措施
2014/10/24 职场文书
Python中可变和不可变对象的深入讲解
2021/08/02 Python