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中也使用$美元符号来代替document.getElementById
Jun 19 Javascript
JavaScript 参数中的数组展开 [译]
Sep 21 Javascript
jquery实现两边飘浮可关闭的对联广告
Nov 27 Javascript
AngularJS 让人爱不释手的八种功能
Mar 23 Javascript
微信小程序 首页制作简单实例
Apr 07 Javascript
详解vue 模拟后台数据(加载本地json文件)调试
Aug 25 Javascript
详解使用vuex进行菜单管理
Dec 21 Javascript
基于 Vue.js 2.0 酷炫自适应背景视频登录页面实现方式
Jan 17 Javascript
如何在基于vue-cli的项目自定义打包环境
Nov 10 Javascript
简单了解Javscript中兄弟ifream的方法调用
Jun 17 Javascript
vue拖拽组件 vuedraggable API options实现盒子之间相互拖拽排序
Jul 08 Javascript
JS数组进阶示例【数组的几种函数用法】
Jan 16 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字符串的比较函数strcmp()与strcasecmp()的使用详解
2013/05/15 PHP
PHP实现获取FLV文件的时间
2015/02/10 PHP
PHP的Yii框架中过滤器相关的使用总结
2016/03/29 PHP
php操作redis数据库常见方法实例总结
2020/02/20 PHP
用javascript实现画板的代码
2007/09/05 Javascript
动态加载图片路径 保持JavaScript控件的相对独立性
2010/09/03 Javascript
两种方法实现文本框输入内容提示消失
2013/03/17 Javascript
开源的javascript项目Kissy介绍
2014/11/28 Javascript
jQuery将所有被选中的checkbox某个属性值连接成字符串的方法
2015/01/24 Javascript
jquery实现适用于门户站的导航下拉菜单效果代码
2015/08/24 Javascript
Bootstrap精简教程
2015/11/27 Javascript
Jquery实现纵向横向菜单
2016/01/24 Javascript
jquery ezUI 双击行记录弹窗查看明细的实现方法
2016/06/01 Javascript
AngularJS基础 ng-copy 指令实例代码
2016/08/01 Javascript
jquery日历插件e-calendar升级版
2016/11/10 Javascript
解决Vue中引入swiper,在数据渲染的时候,发生不滑动的问题
2018/09/27 Javascript
vue+canvas实现炫酷时钟效果的倒计时插件(已发布到npm的vue2插件,开箱即用)
2018/11/05 Javascript
微信小程序自定义可滑动顶部TabBar选项卡实现页面切换功能示例
2019/05/14 Javascript
原生js实现针对Dom节点的CRUD操作示例
2019/08/26 Javascript
原生js实现的观察者和订阅者模式简单示例
2020/04/18 Javascript
JavaScript实现简单验证码
2020/08/24 Javascript
详解Vue 的异常处理机制
2020/11/30 Vue.js
vue中实现点击空白区域关闭弹窗的两种方法
2020/12/30 Vue.js
javascript实现简单页面倒计时
2021/03/02 Javascript
python实现360的字符显示界面
2014/02/21 Python
简单讲解Python中的字符串与字符串的输入输出
2016/03/13 Python
Python中scatter函数参数及用法详解
2017/11/08 Python
同时安装Python2 &amp; Python3 cmd下版本自由选择的方法
2017/12/09 Python
python 循环读取txt文档 并转换成csv的方法
2018/10/26 Python
Python函数和模块的使用总结
2019/05/20 Python
Django框架中间件(Middleware)用法实例分析
2019/05/24 Python
Python文件操作函数用法实例详解
2019/12/24 Python
Prototype如何为一个Ajax添加一个参数
2015/12/06 面试题
科研先进个人典型材料
2014/01/31 职场文书
“四风”问题对照检查材料思想汇报
2014/09/16 职场文书
学生会部长竞选稿
2015/11/19 职场文书