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代码
Jul 01 Javascript
jQuery之字体大小的设置方法
Feb 27 Javascript
js中的setInterval和setTimeout使用实例
May 09 Javascript
利用AngularJs实现京东首页轮播图效果
Sep 08 Javascript
jQuery中常用动画效果函数(日常整理)
Sep 17 Javascript
js生成随机颜色方法代码分享(三种)
Dec 29 Javascript
jQuery中图片展示插件highslide.js的简单dom
Apr 22 jQuery
JavaScript中var、let、const区别浅析
Jun 24 Javascript
用Node提供静态文件服务的方法
Jul 06 Javascript
详解使用create-react-app添加css modules、sasss和antd
Jul 31 Javascript
微信小程序使用自定义组件导航实现当前页面高亮
Jan 02 Javascript
vue3.0+vue-router+element-plus初实践
Dec 02 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
PHP spl_autoload_register实现自动加载研究
2011/12/06 PHP
解析获取优酷视频真实下载地址的PHP源代码
2013/06/26 PHP
二进制交叉权限微型php类分享
2014/02/07 PHP
jQuery动态添加 input type=file的实现代码
2012/06/14 Javascript
javascript之典型高阶函数应用介绍二
2013/01/10 Javascript
javascript-简单的计算器实现步骤分解(附图)
2013/05/30 Javascript
关于js中for in的缺陷浅析
2013/12/02 Javascript
jquery实现倒计时功能
2015/12/28 Javascript
jQuery自动完成插件completer附源码下载
2016/01/04 Javascript
Angular.js回顾ng-app和ng-model使用技巧
2016/04/26 Javascript
详解.vue文件中style标签的几个标识符
2018/07/17 Javascript
React 项目迁移 Webpack Babel7的实现
2018/09/12 Javascript
vue 保留两位小数 不能直接用toFixed(2) 的解决
2020/08/07 Javascript
vue 二维码长按保存和复制内容操作
2020/09/22 Javascript
[01:11:37]完美世界DOTA2联赛PWL S2 SZ vs FTD.C 第一场 11.19
2020/11/19 DOTA
在Python中用has_key()方法查找键是否存在的教程
2015/05/21 Python
python验证码识别教程之利用滴水算法分割图片
2018/06/05 Python
Python pycharm 同时加载多个项目的方法
2019/01/17 Python
python生成每日报表数据(Excel)并邮件发送的实例
2019/02/03 Python
python实现抖音点赞功能
2019/04/07 Python
浅谈python新式类和旧式类区别
2019/04/26 Python
pytorch实现用Resnet提取特征并保存为txt文件的方法
2019/08/20 Python
Anaconda之conda常用命令介绍(安装、更新、删除)
2019/10/06 Python
python实现根据给定坐标点生成多边形mask的例子
2020/02/18 Python
CSS3控制HTML元素动画效果
2014/02/08 HTML / CSS
Clarins娇韵诗英国官网:来自法国的天然护肤品牌
2017/04/18 全球购物
澳大利亚新奇小玩意网站:Yellow Octopus
2017/12/28 全球购物
Orlebar Brown官网:设计师泳裤和泳装
2020/12/08 全球购物
C语言面试题
2013/05/19 面试题
以下的初始化有什么区别
2013/12/16 面试题
写自荐信有哪些不宜?
2013/10/17 职场文书
剪彩仪式主持词
2014/03/19 职场文书
谢师宴邀请函
2015/02/02 职场文书
干货:如何写好观后感 !
2019/05/21 职场文书
如何理解python接口自动化之logging日志模块
2021/06/15 Python
Python软件包安装的三种常见方法
2022/07/07 Python