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 相关文章推荐
PHP abstract与interface之间的区别
Nov 11 Javascript
javascript获取鼠标点击元素对象(示例代码)
Dec 20 Javascript
js实现window.open不被拦截的解决方法汇总
Oct 30 Javascript
jQuery实现企业网站横幅焦点图切换功能实例
Apr 30 Javascript
JS实现淘宝支付宝网站的控制台菜单效果
Sep 28 Javascript
JavaScript截取、切割字符串的技巧
Jan 07 Javascript
javascript 中关于array的常用方法详解
May 05 Javascript
Angular使用Restful的增删改
Dec 28 Javascript
vue3 源码解读之 time slicing的使用方法
Oct 31 Javascript
JS实现可视化音频效果的实例代码
Jan 16 Javascript
VUE中使用HTTP库Axios方法详解
Feb 05 Javascript
Antd的table组件表格的序号自增操作
Oct 27 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
基于mysql的论坛(3)
2006/10/09 PHP
PHP设计模式之数据访问对象模式(DAO)原理与用法实例分析
2019/12/12 PHP
Yii 框架使用数据库(databases)的方法示例
2020/05/19 PHP
JavaScript自执行闭包的小例子
2013/06/29 Javascript
如何调试异步加载页面里包含的js文件
2014/10/30 Javascript
js实现文本框中输入文字页面中div层同步获取文本框内容的方法
2015/03/03 Javascript
jQuery在ul中显示某个li索引号的方法
2015/03/17 Javascript
好好了解一下Cookie(强烈推荐)
2016/06/14 Javascript
jQuery实现标签页效果实战(4)
2017/02/08 Javascript
几行js代码实现自适应
2017/02/24 Javascript
node使用UEditor富文本编辑器的方法实例
2017/07/11 Javascript
详解如何用VUE写一个多用模态框组件模版
2018/09/27 Javascript
JS实现checkbox互斥(单选)功能示例
2019/05/04 Javascript
关于vue 结合原生js 解决echarts resize问题
2020/07/26 Javascript
[02:05]2014DOTA2西雅图国际邀请赛 BBC第二天小组赛总结
2014/07/11 DOTA
[01:32:10]NAVI vs VG Supermajor 败者组 BO3 第一场 6.5
2018/06/06 DOTA
python正则表达式之作业计算器
2016/03/18 Python
Python之lambda匿名函数及map和filter的用法
2019/03/05 Python
opencv导入头文件时报错#include的解决方法
2019/07/31 Python
Python Subprocess模块原理及实例
2019/08/26 Python
python基于opencv检测程序运行效率
2019/12/28 Python
python模拟实现分发扑克牌
2020/04/22 Python
python 实现PIL模块在图片画线写字
2020/05/16 Python
python获取命令行参数实例方法讲解
2020/11/02 Python
Notino意大利:购买香水和化妆品
2018/11/14 全球购物
瑞士首家网上药店折扣店:McDrogerie
2020/12/22 全球购物
机电专业大学生职业规划书范文
2014/02/25 职场文书
新春联欢会主持词
2014/03/24 职场文书
公司会议策划方案
2014/05/17 职场文书
网站推广策划方案
2014/06/04 职场文书
少年派的奇幻漂流观后感
2015/06/08 职场文书
班级元旦晚会开幕词
2016/03/04 职场文书
html中显示特殊符号(附带特殊字符对应表)
2021/06/21 HTML / CSS
JavaScript文档对象模型DOM
2021/11/20 Javascript
Oracle使用别名的好处
2022/04/19 Oracle
Python如何加载模型并查看网络
2022/07/15 Python