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 相关文章推荐
java script编程起步(第三课)
Jan 10 Javascript
js简易namespace管理器 实例代码
Jun 21 Javascript
jquery监听div内容的变化具体实现思路
Nov 04 Javascript
jquery easyui combox一些实用的小方法
Dec 25 Javascript
javascript for-in有序遍历json数据并探讨各个浏览器差异
Nov 30 Javascript
jQuery事件委托之Safari
Jul 05 Javascript
jquery动态遍历Json对象的属性和值的方法
Jul 27 Javascript
jQuery实现可展开折叠的导航效果示例
Sep 12 Javascript
bootstrap modal弹出框的垂直居中
Dec 14 Javascript
学好js,这些js函数概念一定要知道【推荐】
Jan 19 Javascript
two.js之实现动画效果示例
Nov 06 Javascript
js实现简单页面全屏
Sep 17 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
php中理解print EOT分界符和echo EOT的用法区别小结
2010/02/21 PHP
PHP开启gzip页面压缩实例代码
2010/03/11 PHP
php !function_exists(&quot;T7FC56270E7A70FA81A5935B72EACBE29&quot;))代码解密
2011/01/07 PHP
php三种实现多线程类似的方法
2015/10/30 PHP
PHP设计模式(九)外观模式Facade实例详解【结构型】
2020/05/02 PHP
tbody元素支持嵌套的注意方法
2007/03/24 Javascript
3Z版基于jquery的图片复选框(asp.net+jquery)
2010/04/12 Javascript
JS定时关闭窗口的实例
2013/05/22 Javascript
js中如何把字符串转化为对象、数组示例代码
2013/07/17 Javascript
Node调试工具JSHint的安装及配置教程
2014/05/27 Javascript
jQuery的图片滑块焦点图插件整理推荐
2014/12/07 Javascript
Javascript中实现trim()函数的两种方法
2015/02/04 Javascript
DOM事件阶段以及事件捕获与事件冒泡先后执行顺序(图文详解)
2015/08/18 Javascript
IE中document.createElement的iframe无法设置属性name的解决方法
2015/09/14 Javascript
jQuery实现的自适应焦点图效果完整实例
2016/08/24 Javascript
Vue.js每天必学之指令系统与自定义指令
2016/09/07 Javascript
JavaScript 继承详解(六)
2016/10/11 Javascript
JavaScript中this的用法实例分析
2016/12/19 Javascript
JavaScript中Promise的使用详解
2017/02/26 Javascript
大转盘抽奖小程序版 转盘抽奖网页版
2020/04/16 Javascript
使用Promise封装小程序wx.request的实现方法
2019/11/13 Javascript
Python判断变量是否已经定义的方法
2014/08/18 Python
python实现自动化上线脚本的示例
2019/07/01 Python
解决Django一个表单对应多个按钮的问题
2019/07/18 Python
wxpython绘制音频效果
2019/11/18 Python
keras.layer.input()用法说明
2020/06/16 Python
python+selenium实现12306模拟登录的步骤
2021/01/21 Python
法国时尚品牌乐都特瑞士站:La Redoute瑞士
2016/09/05 全球购物
中学运动会广播稿
2014/01/19 职场文书
自我鉴定标准格式
2014/03/19 职场文书
2015年学校教务处工作总结
2015/05/11 职场文书
幼儿园开学报名通知
2015/07/16 职场文书
在CSS中映射鼠标位置并实现通过鼠标移动控制页面元素效果(实例代码)
2021/04/22 HTML / CSS
Pygame Event事件模块的详细示例
2021/11/17 Python
Python中字符串对象语法分享
2022/02/24 Python
基于Apache Hudi在Google云构建数据湖平台的思路详解
2022/04/07 Servers