今天碰到一个需求,一个页面显示赞助厂商的信息,但是厂商要求排序要随机排,因为是个静态页面不是读取数据库的,所以打算用js来控制

 var arr = new Array('张三', '李四', '王五', '赵六', '田七', '哈哈', '呵呵', '么么');  

var brr = new Array();
var len1 = arr.length; var str = "";
//debugger;
while (brr.length <= 8)
{
var index = parseInt(Math.random() * (len1));
for (var j = 0; j < brr.length; j++) {
if (brr.indexOf(arr[index])==-1)
{
brr.push(arr[index]);
//if (arr[index] != undefined) {
str += arr[index] + "、";
//}
arr.splice(index, 1);
}
} if (brr.length==0) {
brr.push(arr[index]);
//if (arr[index] != undefined) {
str += arr[index] + "、";
//}
arr.splice(index, 1);
}
} console.log(str)

嘴笨不知道怎么描述思路,我就把几个版本都放上来,大家慢慢看应该是可以看明白的

   while (brr.length <= arr.length)
{
var index = parseInt(Math.random() * (len1));
if (brr.length==0) {
brr.push(arr[index]);//第一次添加
} if (arr[index] != undefined) { //因为加一个后会去掉数据源的一个选项,所以有时候会有索引没值
brr.push(arr[index]);
str += arr[index] + "、";
arr.splice(index, 1);
}
}

这样就可以实现不重复随机排序指定内容了,但是还是有undefined的情况

 while (arr.length) {
str += arr.splice(parseInt(Math.random() * arr.length), 1)[0] ;
}

最终版本,我随机删除其中一个元素,然后把这个元素输出,就避免了undefined的情况了,但是这种做法的弊端是这时候arr数组就没有数据了,如果需要做定时刷新就不可以了,必须是手动刷新才会随机加载,如果需要做定时刷新还是需要新建一个数组,然后往里面插入元素,加一个定时器就可以实现定时刷新内容了。因为我的需求是手动刷新,所以用了最后的版本简洁大方。做了整整一下午大概改版了七八次,感觉还不错发个博客小小得瑟下,希望帮到别人

javascript 随机显示指定内容的更多相关文章

  1. gridView RowDataBound事件 鼠标经过行颜色变化及根据字段值显示指定内容

    protected void gvBarInfo_RowDataBound(object sender, GridViewRowEventArgs e)        {            if ...

  2. winform里面网页显示指定内容

    今天有个同事问了一下我,怎么在winform里面打开网页啊?我们都是基于C/S的开发,很少接触winform,所以我当时就懵了,实在不知道怎么回答,所以索性说不知道.但是我又想了想,这个应该是个很简单 ...

  3. 只访问tomcat,不访问项目时,显示指定内容。

      1.情景展示 我们知道,将javaWeb项目部署到tomcat后,访问该项目的url路径构成是: 网路协议+"://"+ip地址+":"+tomcat设定的 ...

  4. SendTextMessage如何打开记事本并显示指定内容

    procedure TForm1.Button1Click(Sender: TObject); var hEdit: HWND; str: string; begin str := '准备要添加到记事 ...

  5. error_page 改变状态码为新的状态码,并显示指定内容

    server { listen 80; server_name www.espressos.com; location / { root /data0/www/bbs; index index.htm ...

  6. Javascript 随机显示数组元素

    $(function(){ var wx_arr = ['gb3055','gb6365']; var storage = window.localStorage; function random_w ...

  7. JS实现的随机显示图片

    <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xht ...

  8. 如是使用JS实现页面内容随机显示

    之前有个客户咨询我,因为他们公司的业务员有多个人,但公司网站的联系方式板块里只够放一个人的信息,所以就想能不能实现这个联系方式信息随机显示,对于业务或客服人员来说也能做到分配均匀公平.本文我们将和大家 ...

  9. javascript怎么获取指定url网页中的内容

    javascript怎么获取指定url网页中的内容 一.总结 一句话总结:推荐jquery中ajax,简单方便. 1.js能跨域操作么? javascript出于安全机制不允许跨域操作的. 二.用ph ...

随机推荐

  1. margin三个值

    http://www.cnblogs.com/wangkongming/p/3204734.html margin标记可以带一个.二个.三个.四个参数,各有不同的含义. margin: 20px;(上 ...

  2. web前端性能调优(二)

    项目经过第一波优化之后APP端已基本已经符合我们的要求了,但是TV端还是反应比较慢,页面加载和渲染都比较慢了一点,我觉的还是有必要在进行一些优化,经过前面的优化,我们的优化空间已经小了一部分,不过还是 ...

  3. js精要之构造函数

    // 枚举对象 var obj = {} obj.name = "bob"; obj.age = "; obj.sex = "boy"; consol ...

  4. OVS vxlan 底层结构分析 - 每天5分钟玩转 OpenStack(148)

    上一节创建了 vxlan100_net 并部署 instance,今天我们来分析底层网络结构. 控制节点 执行 ovs-vsctl show: br-int br-int 连接了如下 port: ta ...

  5. TFS2010升级至TFS2013完全指南

    一.背景:         公司已使用tfs2010很长时间,目前随着公司的发展,项目越来越少,而产品越来越多,采用的开发模式,也逐渐从瀑布式.迭代式转向敏捷开发.为了更好的支持产品研发,决定将tfs ...

  6. jvm垃圾收集小记

    垃圾收集是java与c/c++的最大不同.有了jvm的自动垃圾收集机制,就可以让程序员专注于程序逻辑开发, 而不是花费大量的时间是考虑一个变量应该在什么时候去释放. 下面我们就来简单说一下java的垃 ...

  7. shell编程其实真的很简单(五)

    通过前几篇文章的学习,我们学会了shell的基本语法.在linux的实际操作中,我们经常看到命令会有很多参数,例如:ls -al 等等,那么这个参数是怎么处理的呢? 接下来我们就来看看shell脚本对 ...

  8. hibernate注解的简单应用

    注解代替了我们用的*.hbm.xml文件.简少了我们的代码量:应用简单. @Override 用途:重写父类的同名方法 单元测试注解 @Test 用途:用于测试 @Before 用途:单测方法走之前执 ...

  9. Sqlserver 链接服务器和同义词

    在数据库的日常维护中,经常会遇到跨服务器的数据传输. 例如A服务器上的数据每天要从B服务器上去获取数据,然后插入到自己的服务器上.这种情况就要用到链接服务器了. 接下来,我就把我本机当作服务器A,17 ...

  10. Java安装

    java特点:跨平台.简单.面向对像编译后解释再运行安装JDK 环境变量的配置:JAVA_HOME:JDK的根目录====C:\Program Files\Java\jdk1.7.0_25Path:J ...