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 相关文章推荐
预加载css或javascript的js代码
Apr 23 Javascript
12种不宜使用的Javascript语法整理
Nov 04 Javascript
初识SmartJS - AOP三剑客
Jun 08 Javascript
js实现漂浮回顶部按钮实例
May 06 Javascript
jquery div模态窗口的简单实例
May 28 Javascript
JavaScript中localStorage对象存储方式实例分析
Jan 12 Javascript
js事件冒泡与事件捕获详解
Feb 20 Javascript
vue使用watch 观察路由变化,重新获取内容
Mar 08 Javascript
微信小程序中遇到的iOS兼容性问题小结
Nov 14 Javascript
javascript系统时间设置操作示例
Jun 17 Javascript
使用JavaScript获取扫码枪扫描得到的条形码的思路代码详解
Jun 10 Javascript
解决vue中axios设置超时(超过5分钟)没反应的问题
Sep 04 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学习资料汇总与网址
2007/03/16 PHP
使用php来实现网络服务
2009/09/15 PHP
yii实现级联下拉菜单的方法
2014/07/31 PHP
PHP7扩展开发之基于函数方式使用lib库的方法详解
2018/01/15 PHP
JQuery autocomplete 使用手册
2010/04/01 Javascript
无缝滚动改进版支持上下左右滚动(封装成函数)
2012/12/04 Javascript
php 中序列化和json使用介绍
2013/07/08 Javascript
PHP abstract与interface之间的区别
2013/11/11 Javascript
jQuery中:hidden选择器用法实例
2014/12/30 Javascript
jQuery获得包含margin的outerWidth和outerHeight的方法
2015/03/25 Javascript
drag-and-drop实现图片浏览器预览
2015/08/06 Javascript
JavaScript模拟push
2016/03/06 Javascript
通过bootstrap全面学习less
2016/11/09 Javascript
vue.js  父向子组件传参的实例代码
2017/10/29 Javascript
详解Vue如何支持JSX语法
2017/11/10 Javascript
利用ES6实现单例模式及其应用详解
2017/12/09 Javascript
vue使用rem实现 移动端屏幕适配
2018/09/26 Javascript
微信小程序文章详情页跳转案例详解
2019/07/09 Javascript
[01:22:29]真视界:2019年国际邀请赛总决赛
2020/01/29 DOTA
使用python编写脚本获取手机当前应用apk的信息
2014/07/21 Python
Python模糊查询本地文件夹去除文件后缀的实例(7行代码)
2017/11/09 Python
pyqt5自定义信号实例解析
2018/01/31 Python
python实现动态创建类的方法分析
2019/06/25 Python
为什么从Python 3.6开始字典有序并效率更高
2019/07/15 Python
HTML5本地存储之Web Storage应用介绍
2013/01/06 HTML / CSS
Chicco婴儿用品美国官网:汽车座椅、婴儿推车、高脚椅等
2018/11/05 全球购物
SK-II神仙水美国官网:SK-II美国
2020/02/25 全球购物
关键字throw与throws的用法差异
2016/11/22 面试题
大学军训通讯稿
2014/01/13 职场文书
产品开发计划书
2014/04/27 职场文书
班级活动总结格式
2014/08/30 职场文书
2014年化工厂工作总结
2014/11/25 职场文书
项目安全员岗位职责
2015/02/15 职场文书
2015年信息中心工作总结
2015/05/25 职场文书
2019XX公司员工考核管理制度!
2019/08/07 职场文书
小学语文教师竞聘演讲稿范文
2019/08/09 职场文书