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 相关文章推荐
jquery查找父元素、子元素(个人经验总结)
Apr 09 Javascript
javascript实现倒计时N秒后网页自动跳转代码
Dec 11 Javascript
jQuery控制Div拖拽效果完整实例分析
Apr 15 Javascript
使用JavaScript解决网页图片拉伸问题(推荐)
Nov 25 Javascript
Bootstrap CSS组件之导航(nav)
Dec 17 Javascript
JavaScript 中 apply 、call 的详解
Mar 21 Javascript
ReactJs设置css样式的方法
Jun 08 Javascript
element 结合vue 在表单验证时有值却提示错误的解决办法
Jan 22 Javascript
JS点击动态添加标签、删除指定标签的代码
Apr 18 Javascript
详解Vue中watch的详细用法
Nov 28 Javascript
我要点爆”微信小程序云开发之项目建立与我的页面功能实现
May 26 Javascript
Vue组件模板及组件互相引用代码实例
Mar 11 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使用explode()函数将字符串拆分成数组的方法
2015/02/17 PHP
php+mysql实现简单的增删改查功能
2015/07/13 PHP
php 计算两个时间相差的天数、小时数、分钟数、秒数详解及实例代码
2016/11/09 PHP
laravel5.5添加echarts实现画图功能的方法
2019/10/09 PHP
Javascript 事件流和事件绑定
2009/07/16 Javascript
jQuery学习笔记之jQuery的事件
2010/12/22 Javascript
javascript的alert box在java中如何显示多行
2014/05/18 Javascript
PhantomJS快速入门教程(服务器端的 JavaScript API 的 WebKit)
2015/08/06 Javascript
jquery插件tytabs.jquery.min.js实现渐变TAB选项卡效果
2015/08/25 Javascript
Node.js的Koa框架上手及MySQL操作指南
2016/06/13 Javascript
AngularJS ng-bind-template 指令详解
2016/07/30 Javascript
用nodejs实现json和jsonp服务的方法
2017/08/25 NodeJs
webpack构建换肤功能的思路详解
2017/11/27 Javascript
Vue-Quill-Editor富文本编辑器的使用教程
2018/09/21 Javascript
vue 利用路由守卫判断是否登录的方法
2018/09/29 Javascript
Vue axios与Go Frame后端框架的Options请求跨域问题详解
2020/03/03 Javascript
[02:07]2017国际邀请赛中国区预选赛直邀战队前瞻
2017/06/23 DOTA
[58:25]VP vs RNG 2019国际邀请赛小组赛 BO2 第一场 8.15
2019/08/17 DOTA
python创建和使用字典实例详解
2013/11/01 Python
用python简单实现mysql数据同步到ElasticSearch的教程
2018/05/30 Python
Python实现绘制双柱状图并显示数值功能示例
2018/06/23 Python
对numpy.append()里的axis的用法详解
2018/06/28 Python
树莓派3 搭建 django 服务器的实例
2019/08/29 Python
python实现拼图小游戏
2020/02/22 Python
python使用pyecharts库画地图数据可视化的实现
2020/03/25 Python
python中使用input()函数获取用户输入值方式
2020/05/03 Python
python 解决selenium 中的 .clear()方法失效问题
2020/09/01 Python
Python collections模块的使用方法
2020/10/09 Python
基于Python实现粒子滤波效果
2020/12/01 Python
物流经理自我评价
2013/09/23 职场文书
车队司机自我鉴定
2014/03/02 职场文书
领导干部廉政承诺书
2014/03/27 职场文书
社区服务标语
2014/07/01 职场文书
工程承包协议书范本
2014/09/29 职场文书
自荐信格式范文
2015/03/04 职场文书
2016年学校党支部创先争优活动总结
2016/04/05 职场文书