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 相关文章推荐
Jquery插件 easyUI属性汇总
Jan 19 Javascript
基于jQuery的模仿新浪微博时间的组件
Oct 04 Javascript
详细介绍8款超实用JavaScript框架
Oct 25 Javascript
Javasipt:操作radio标签详解
Dec 30 Javascript
node.js中的fs.writeFileSync方法使用说明
Dec 14 Javascript
jQuery toggle 代替方法
Mar 22 Javascript
React 子组件向父组件传值的方法
Jul 24 Javascript
使用 Node.js 实现图片的动态裁切及算法实例代码详解
Sep 29 Javascript
详解webpack引入第三方库的方式以及注意事项
Jan 15 Javascript
微信小程序仿淘宝热搜词在搜索框中轮播功能
Jan 21 Javascript
javascript异常处理实现原理详解
Feb 17 Javascript
使用next.js开发网址缩短服务的方法
Jun 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 和 XML: 使用expat函数(三)
2006/10/09 PHP
PHP初学者常见问题集合 修正版(21问答)
2010/03/23 PHP
php编程实现获取excel文档内容的代码实例
2011/06/28 PHP
php数据类型判断函数有哪些
2013/09/23 PHP
php自定义函数转换html标签示例
2016/09/29 PHP
Laravel使用支付宝进行支付的示例代码
2017/08/16 PHP
PHP对象的浅复制与深复制的实例详解
2017/10/26 PHP
Laravel访问出错提示:`Warning: require(/vendor/autoload.php): failed to open stream: No such file or di解决方法
2019/04/02 PHP
JavaScript修改浏览器tab标题小技巧
2015/01/06 Javascript
jQuery学习笔记之jQuery中的$
2015/01/19 Javascript
js表格排序实例分析(支持int,float,date,string四种数据类型)
2015/05/06 Javascript
JS for循环中i++ 和 ++i的区别介绍
2016/07/20 Javascript
jquery 中toggle的2种用法详解(推荐)
2016/09/02 Javascript
微信小程序 实战程序简易新闻的制作
2017/01/09 Javascript
jQuery实现文件编码成base64并通过AJAX上传的方法
2018/04/12 jQuery
基于vue实现可搜索下拉框定制组件
2020/03/26 Javascript
vue使用v-for实现hover点击效果
2018/09/29 Javascript
vue+echarts实现可拖动节点的折线图(支持拖动方向和上下限的设置)
2019/04/12 Javascript
关于Vue源码vm.$watch()内部原理详解
2019/04/26 Javascript
JavaScript中如何调用Java方法
2020/09/16 Javascript
[20:57]Ti4主赛事第三天开幕式
2014/07/21 DOTA
python解析xml文件操作实例
2014/10/05 Python
操作Windows注册表的简单的Python程序制作教程
2015/04/07 Python
PyQt5每天必学之事件与信号
2018/04/20 Python
实例讲解python中的序列化知识点
2018/10/08 Python
python实现将range()函数生成的数字存储在一个列表中
2020/04/02 Python
Jupyter Notebook输出矢量图实例
2020/04/14 Python
基于Python实现2种反转链表方法代码实例
2020/07/06 Python
python中not、and和or的优先级与详细用法介绍
2020/11/03 Python
Html5适配iphoneX刘海屏的简单实现
2019/04/09 HTML / CSS
记一次高分屏下canvas模糊问题
2020/02/17 HTML / CSS
html5关于外链嵌入页面通信问题(postMessage解决跨域通信)
2020/07/20 HTML / CSS
苹果香港官方商城:Apple香港
2016/09/14 全球购物
酒店总经理助理职责
2014/02/12 职场文书
标准大学生职业生涯规划书写作指南
2014/09/18 职场文书
党员志愿者服务倡议书
2015/04/29 职场文书