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 相关文章推荐
js可突破windows弹退效果代码
Aug 09 Javascript
6款新颖的jQuery和CSS3进度条插件推荐
Mar 05 Javascript
JavaScript中创建类/对象的几种方法总结
Nov 29 Javascript
采用call方式实现js继承
May 20 Javascript
jquery bind(click)传参让列表中每行绑定一个事件
Aug 06 Javascript
jQuery的ready方法详解
Nov 27 Javascript
JavaScript 模块的循环加载实现方法
Dec 13 Javascript
jQuery简单获取DIV和A标签元素位置的方法
Feb 07 Javascript
使用contextMenu插件实现Bootstrap table弹出右键菜单
Feb 20 Javascript
vue router下的html5 history在iis服务器上的设置方法
Oct 18 Javascript
Koa代理Http请求的示例代码
Oct 10 Javascript
Vue3+elementui plus创建项目的方法
Dec 01 Vue.js
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
Codeigniter校验ip地址的方法
2015/03/21 PHP
PHP中strnatcmp()函数“自然排序算法”进行字符串比较用法分析(对比strcmp函数)
2016/01/07 PHP
php 函数使用可变数量的参数方法
2017/05/02 PHP
使用git迁移Laravel项目至新开发环境的步骤详解
2020/04/06 PHP
Mootools 1.2教程(3) 数组使用简介
2009/09/14 Javascript
使用jquery读取html5 localstorage的值的方法
2013/01/04 Javascript
FF IE浏览器修改标签透明度的方法
2014/01/27 Javascript
JavaScript监听文本框回车事件并过滤文本框空格的方法
2015/04/16 Javascript
canvas绘制多边形
2017/02/24 Javascript
jQuery的时间datetime控件在AngularJs中的使用实例(分享)
2017/08/17 jQuery
微信小程序 动画的简单实例
2017/10/12 Javascript
如何选择适合你的JavaScript框架
2017/11/20 Javascript
JavaScript&quot;模拟事件&quot;的注意要点详解
2019/02/13 Javascript
node.js使用express框架进行文件上传详解
2019/03/03 Javascript
Vue3.0结合bootstrap创建多页面应用
2019/05/28 Javascript
JavaScript图片旋转效果实现方法详解
2020/06/28 Javascript
基于ajax实现上传图片代码示例解析
2020/12/03 Javascript
vue基于Echarts的拖拽数据可视化功能实现
2020/12/04 Vue.js
使用Python3制作TCP端口扫描器
2017/04/17 Python
PyQt5每天必学之QSplitter实现窗口分隔
2018/04/19 Python
python实现支付宝当面付(扫码支付)功能
2018/05/30 Python
利用python GDAL库读写geotiff格式的遥感影像方法
2018/11/29 Python
Python + OpenCV 实现LBP特征提取的示例代码
2019/07/11 Python
python matplotlib饼状图参数及用法解析
2019/11/04 Python
django框架基于queryset和双下划线的跨表查询操作详解
2019/12/11 Python
python中remove函数的踩坑记录
2021/01/04 Python
英国、欧洲和全球租车服务:Avis英国
2016/08/29 全球购物
美国卡车、吉普车和SUV零件网站:4 Wheel Parts
2016/11/24 全球购物
Sixt美国租车:高端豪华车型自驾体验
2017/09/02 全球购物
美国在线和移动免费会员制批发零售商:Boxed(移动端的Costco)
2020/01/02 全球购物
正科级干部考察材料
2014/05/29 职场文书
2014年国庆标语
2014/06/30 职场文书
详细的本科生职业生涯规划范文
2014/09/16 职场文书
2014年办公室人员工作总结
2014/12/09 职场文书
经理助理岗位职责
2015/02/02 职场文书
雷锋电影观后感
2015/06/10 职场文书