JS随机排序数组实现方法分析


Posted in Javascript onOctober 11, 2017

本文实例讲述了JS随机排序数组。分享给大家供大家参考,具体如下:

做随机显示推荐广告的时候,需要随机排序数据数组,就动手写了一个,如下:

function randomOrder (targetArr) {
  var originalArr = targetArr;
  var newArr = [];
  var arrLength = targetArr.length;
  var j = -1;
  var tmpObj = {};
  for(var i = 0;i < arrLength;i++){
    while(true) {
      if(tmpObj[j = parseInt(arrLength * Math.random())] == undefined) {
        tmpObj[j] = 1;
        console.log(j);
        break;
      }
    }
    newArr[i] = originalArr[j];
  }
  return newArr;
}

但是..后来在网上看到大师写的方法,觉得自己瞬间被秒杀到渣都不剩,如下:

function sortNumber(a,b) {
  return Math.random() - 0.5;
}
var arr = arr=[9,3,1,2,5,8,4,7,6,0];
arr.sort(sortNumber);

自己实在有太多太多需要学习了!!

Javascript 相关文章推荐
JavaScript 操作键盘的Enter事件(键盘任何事件),兼容多浏览器
Oct 11 Javascript
javascript真的不难-回顾一下基础知识
Jan 15 Javascript
JavaScript实现文本框中默认显示背景图片在获得焦点后消失的方法
Jul 01 Javascript
实例详解ECMAScript5中新增的Array方法
Apr 05 Javascript
最丑的时钟效果!js canvas时钟制作方法
Aug 15 Javascript
jq实现左滑显示删除按钮,点击删除实现删除数据功能(推荐)
Aug 23 Javascript
bootstrap按钮插件(Button)使用方法解析
Jan 13 Javascript
JS实现课堂随机点名和顺序点名
Mar 09 Javascript
js获取json中key所对应的value值的简单方法
Jun 17 Javascript
解决Layui数据表格中checkbox位置不居中的方法
Aug 15 Javascript
微信小程序城市选择及搜索功能的方法
Mar 22 Javascript
微信小程序实现上传照片代码实例解析
Aug 04 Javascript
vue mint-ui学习笔记之picker的使用
Oct 11 #Javascript
jQuery中过滤器的基本用法示例
Oct 11 #jQuery
基于VUE.JS的移动端框架Mint UI的使用
Oct 11 #Javascript
jQuery中extend函数简单用法示例
Oct 11 #jQuery
vue中配置mint-ui报css错误问题的解决方法
Oct 11 #Javascript
node.js操作MongoDB的实例详解
Oct 11 #Javascript
简单谈谈vue的过渡动画(推荐)
Oct 11 #Javascript
You might like
Laravel框架运行出错提示RuntimeException No application encryption key has been specified.解决方法
2019/04/02 PHP
跨浏览器开发经验总结(三)   警惕“IE依赖综合症”
2010/05/13 Javascript
JS特权方法定义作用以及与公有方法的区别
2013/03/18 Javascript
js+css实现增加表单可用性之提示文字
2013/06/03 Javascript
网页防止tab键的使用快速解决方法
2013/11/07 Javascript
jQuery中not()方法用法实例
2015/01/06 Javascript
jQuery Validate表单验证插件 添加class属性形式的校验
2016/01/18 Javascript
JS随机洗牌算法之数组随机排序
2016/03/23 Javascript
浅谈Angular中ngModel的$render
2016/10/24 Javascript
Vue.js组件tabs实现选项卡切换效果
2016/12/01 Javascript
如何编写jquery插件
2017/03/29 jQuery
vuex state及mapState的基础用法详解
2018/04/19 Javascript
JavaScript数组特性与实践应用深入详解
2018/12/30 Javascript
vue实现局部刷新的实现示例
2019/04/16 Javascript
[00:12]DAC2018 no[o]ne亮相SOLO赛 他是否如他的id一样无人可挡?
2018/04/06 DOTA
[52:10]LGD vs Optic Supermajor小组赛D组胜者组决赛 BO3 第二场 6.3
2018/06/04 DOTA
python 统计列表中不同元素的数量方法
2018/06/29 Python
Python之虚拟环境virtualenv,pipreqs生成项目依赖第三方包的方法
2019/07/23 Python
学Python 3的理由和必要性
2019/11/19 Python
pytorch::Dataloader中的迭代器和生成器应用详解
2020/01/03 Python
python中68个内置函数的总结与介绍
2020/02/24 Python
Python .py生成.pyd文件并打包.exe 的注意事项说明
2021/03/04 Python
Html5移动端获奖无缝滚动动画实现示例
2018/06/25 HTML / CSS
用canvas做一个DVD待机动画的实现代码
2019/04/12 HTML / CSS
乐高奥地利官方商店:LEGO Shop AT
2019/07/16 全球购物
Timberland俄罗斯官方网上商店:全球领先的户外品牌
2020/03/15 全球购物
企业为何需要商业计划书
2013/12/26 职场文书
个人简历中自我评价
2014/02/11 职场文书
个性发展自我评价
2014/02/11 职场文书
学习雷锋寄语大全
2014/04/11 职场文书
幼儿园大班评语大全
2014/04/17 职场文书
合作协议书范本
2014/04/17 职场文书
党的群众教育实践活动实施方案
2014/06/12 职场文书
检讨书格式范文
2015/05/07 职场文书
python非标准时间的转换
2021/07/25 Python
MySQL数据库10秒内插入百万条数据的实现
2021/11/01 MySQL