javascript 随机显示指定内容
今天碰到一个需求,一个页面显示赞助厂商的信息,但是厂商要求排序要随机排,因为是个静态页面不是读取数据库的,所以打算用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 随机显示指定内容的更多相关文章
- gridView RowDataBound事件 鼠标经过行颜色变化及根据字段值显示指定内容
protected void gvBarInfo_RowDataBound(object sender, GridViewRowEventArgs e) { if ...
- winform里面网页显示指定内容
今天有个同事问了一下我,怎么在winform里面打开网页啊?我们都是基于C/S的开发,很少接触winform,所以我当时就懵了,实在不知道怎么回答,所以索性说不知道.但是我又想了想,这个应该是个很简单 ...
- 只访问tomcat,不访问项目时,显示指定内容。
1.情景展示 我们知道,将javaWeb项目部署到tomcat后,访问该项目的url路径构成是: 网路协议+"://"+ip地址+":"+tomcat设定的 ...
- SendTextMessage如何打开记事本并显示指定内容
procedure TForm1.Button1Click(Sender: TObject); var hEdit: HWND; str: string; begin str := '准备要添加到记事 ...
- error_page 改变状态码为新的状态码,并显示指定内容
server { listen 80; server_name www.espressos.com; location / { root /data0/www/bbs; index index.htm ...
- Javascript 随机显示数组元素
$(function(){ var wx_arr = ['gb3055','gb6365']; var storage = window.localStorage; function random_w ...
- JS实现的随机显示图片
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xht ...
- 如是使用JS实现页面内容随机显示
之前有个客户咨询我,因为他们公司的业务员有多个人,但公司网站的联系方式板块里只够放一个人的信息,所以就想能不能实现这个联系方式信息随机显示,对于业务或客服人员来说也能做到分配均匀公平.本文我们将和大家 ...
- javascript怎么获取指定url网页中的内容
javascript怎么获取指定url网页中的内容 一.总结 一句话总结:推荐jquery中ajax,简单方便. 1.js能跨域操作么? javascript出于安全机制不允许跨域操作的. 二.用ph ...
随机推荐
- jqGrid Demos
http://www.trirand.com/blog/jqgrid/jqgrid.html http://www.cnblogs.com/huozhicheng/archive/2012/11/11 ...
- js运算符单竖杠“|”的作用
在js整数操作的时候,相当于去除小数点,parseInt.在正数的时候相当于Math.floor(),负数的时候相当于Math.ceil() 注: 1. Math.ceil()用作向上取整. 2. M ...
- 第三章 Python 的容器: 列表、元组、字典与集合
列表是Python的6种内建序列(列表,元组,字符串,Unicode字符串,buffer对象,xrange对象)之一, 列表内的值可以进行更改,操作灵活,在Python脚本中应用非常广泛 列表的语法格 ...
- 我的Linux软件集
把我常用的软件记下来,以后重装安装的时候方便一些- 这个博文会不断更新的- 开发工具类 Monodevelop 编写C#控制台程序和GTK#窗口程序,很好,虽然没有VS强大,但是够用了 CodeBlo ...
- 在ubuntu linux 中编写一个自己的bash脚本
在ubuntu linux 中编写一个自己的简单的bash脚本. 实现功能:终端中输入简单的命令(以pm为例(play music)),来实现音乐的播放.注:本人ununut中安装了audacious ...
- Ubuntu 16.04安装配置Samba服务
Samba是开源软件,用来让Linux系统与Windows系统的SMB/CIFS网络协定做连结,实现Windows主机与Linux服务器之间的资源共享.Samba服务为两种不同的操作系统架起了一座桥梁 ...
- <C++Primer>第四版 阅读笔记 第三部分 “类和数据抽象”
类定义了数据成员和函数成员:数据成员用于存储与该类类型的对象相关联的状态:而函数成员则负责执行赋予数据意义的操作. 第12章 类 一个类可以包含若干公有的.私有的和受保护的部分:在public部分定义 ...
- 理解Node.js的事件轮询
前言 总括 : 原文地址:理解Node.js的事件轮询 Node小应用:Node-sample 智者阅读群书,亦阅历人生 正文 Node.js的两个基本概念 Node.js的第一个基本概念就是I/O操 ...
- c#.net的网站出现“正在中止线程””异常的原因和解决方法
出现“正在中止线程”异常通常都是由于以下三种原因导致引起,给出解决方案如下: 解决方案: 1.针对Response.End,调用 HttpContext.Current.ApplicationInst ...
- jQuery --checkbox全选和取消全选简洁高效的解决办法
最近在公司做了一个小项目,其中有一个全选和取消全选的这么一个模块,搞了半天找不到一种最佳的解决方案!后来通过各种努力找到了一种简洁高效的解决办法,这里想和大家分享一下.有问题的话,还望各路大神指导一二 ...