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对象WeixinJSBridge使用实例
May 25 Javascript
jquery.validate 自定义验证方法及validate相关参数
Jan 18 Javascript
JavaScript Ajax实现异步通信
Dec 14 Javascript
js实现获取鼠标当前的位置
Dec 14 Javascript
在Vue中使用highCharts绘制3d饼图的方法
Feb 08 Javascript
JS 使用 window对象的print方法实现分页打印功能
May 16 Javascript
JS中call和apply函数用法实例分析
Jun 20 Javascript
详解三种方式解决vue中v-html元素中标签样式
Nov 22 Javascript
小程序实现订单倒计时功能
Apr 23 Javascript
vue 取出v-for循环中的index值实例
Nov 09 Javascript
解决vue init webpack 下载依赖卡住不动的问题
Nov 09 Javascript
mustache.js实现首页元件动态渲染的示例代码
Dec 28 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
mysql_fetch_assoc和mysql_fetch_row的功能加起来就是mysql_fetch_array
2007/01/15 PHP
Linux下PHP安装mcrypt扩展模块笔记
2014/09/10 PHP
PHP中echo,print_r与var_dump区别分析
2014/09/29 PHP
PHP实现的memcache环形队列类实例
2015/07/28 PHP
层序遍历在ExtJs的TreePanel中的应用
2009/10/16 Javascript
Extjs407 getValue()和getRawValue()区别介绍
2013/05/21 Javascript
JS性能优化笔记搜索整理
2013/08/21 Javascript
jQuery对象初始化的传参方式
2015/02/26 Javascript
深入浅出分析javaScript中this用法
2015/05/09 Javascript
JavaScript中的small()方法使用详解
2015/06/08 Javascript
jQuery实现鼠标滑向当前图片高亮显示并且其它图片变灰的方法
2015/07/27 Javascript
js命名空间写法示例
2015/12/18 Javascript
AngularJS基于ui-route实现深层路由的方法【路由嵌套】
2016/12/14 Javascript
Bootstrap源码解读导航条(7)
2016/12/23 Javascript
微信小程序富文本渲染引擎的详解
2017/09/30 Javascript
webpack4 css打包压缩问题的解决
2018/05/18 Javascript
让你5分钟掌握9个JavaScript小技巧
2018/06/09 Javascript
浅谈vue方法内的方法使用this的问题
2018/09/15 Javascript
Vue 实现把表单form数据 转化成json格式的数据
2019/10/29 Javascript
构建Vue大型应用的10个最佳实践(小结)
2019/11/07 Javascript
vue设置全局访问接口API地址操作
2020/08/14 Javascript
基于vue实现微博三方登录流程解析
2020/11/04 Javascript
[48:37]EG vs OG 2018国际邀请赛小组赛BO2 第一场 8.17
2018/08/18 DOTA
[52:02]DOTA2-DPC中国联赛 正赛 Phoenix vs Dragon BO3 第二场 2月26日
2021/03/11 DOTA
Python入门篇之对象类型
2014/10/17 Python
python的keyword模块用法实例分析
2015/06/30 Python
Python基于list的append和pop方法实现堆栈与队列功能示例
2017/07/24 Python
Queue 实现生产者消费者模型(实例讲解)
2017/11/13 Python
解决阿里云邮件发送不能使用25端口问题
2020/08/07 Python
演讲稿格式
2014/04/30 职场文书
敬老院献爱心活动总结
2014/07/08 职场文书
离婚协议书范本样本
2014/08/19 职场文书
2015年团支部工作总结
2015/04/03 职场文书
2015年计划生育责任书
2015/05/08 职场文书
创业计划书之宠物店
2019/09/19 职场文书
pytest实现多进程与多线程运行超好用的插件
2022/07/15 Python