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 相关文章推荐
地震发生中逃生十大法则
May 12 Javascript
jquery last-child 列表最后一项的样式
Jan 22 Javascript
详解JavaScript的策略模式编程
Jun 24 Javascript
18个非常棒的jQuery代码片段
Nov 02 Javascript
Javascript中字符串replace方法的第二个参数探究
Dec 05 Javascript
codeMirror插件使用讲解
Jan 16 Javascript
jQuery EasyUI 折叠面板accordion的使用实例(分享)
Dec 25 jQuery
vue中添加mp3音频文件的方法
Mar 02 Javascript
详解Eslint 配置及规则说明
Sep 10 Javascript
JS中注入eval, Function等系统函数截获动态代码
Apr 03 Javascript
JS+HTML5本地存储Localstorage实现注册登录及验证功能示例
Feb 10 Javascript
jQuery实现穿梭框效果
Jan 19 jQuery
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获取搜索引擎关键字来源的函数(支持百度和谷歌等搜索引擎)
2012/10/03 PHP
php 获取SWF动画截图示例代码
2014/02/10 PHP
Drupal7 form表单二次开发要点与实例
2014/03/02 PHP
php使用指定字符列表生成随机字符串的方法
2015/04/18 PHP
利用PHP访问MySql数据库的逻辑操作以及增删改查的实例讲解
2017/08/30 PHP
php记录搜索引擎爬行记录的实现代码
2018/03/02 PHP
javascript-TreeView父子联动效果保持节点状态一致
2007/08/12 Javascript
Prototype PeriodicalExecuter对象 学习
2009/07/19 Javascript
基于Jquery的温度计动画效果
2010/06/18 Javascript
原创javascript小游戏实现代码
2010/08/19 Javascript
一个JS的日期格式化算法示例
2013/07/31 Javascript
js判读浏览器是否支持html5的canvas的代码
2013/11/18 Javascript
jQuery Mobile弹出窗、弹出层知识汇总
2016/01/05 Javascript
jQuery拖拽排序插件制作拖拽排序效果(附源码下载)
2016/02/23 Javascript
浅析Javascript中bind()方法的使用与实现
2016/05/30 Javascript
JavaScript实现定时页面跳转功能示例
2017/02/14 Javascript
JavaScript定义及输出螺旋矩阵的方法详解
2017/12/01 Javascript
深入理解移动前端开发之viewport
2018/10/19 Javascript
JavaScript变量提升和严格模式实例分析
2019/01/27 Javascript
微信小程序图片左右摆动效果详解
2019/07/13 Javascript
js实现贪吃蛇小游戏
2019/10/29 Javascript
Vue仿Bibibili首页的问题
2021/01/21 Vue.js
[52:12]FNATIC vs Infamous 2019国际邀请赛小组赛 BO2 第一场 8.16
2019/08/19 DOTA
[02:58]魔廷新尊——痛苦女王至宝语音台词节选
2020/06/14 DOTA
python中stdout输出不缓存的设置方法
2014/05/29 Python
Python 模板引擎的注入问题分析
2017/01/01 Python
python去除扩展名的实例讲解
2018/04/23 Python
Python实现word2Vec model过程解析
2019/12/16 Python
雷曼兄弟的五金店:Lehman’s Hardware Store
2019/04/10 全球购物
中队活动总结
2014/08/27 职场文书
2014年小学工作总结
2014/11/26 职场文书
2016年会开场白台词
2015/06/01 职场文书
2015年初中教师个人工作总结
2015/07/21 职场文书
会议室管理制度范本
2015/08/06 职场文书
详解jQuery的核心函数和事件处理
2022/02/18 jQuery
Lakehouse数据湖并发控制陷阱分析
2022/03/31 Oracle