使用JS编写一个方法 让数组中的元素每次刷新随机排列(不得使用sort方法;需注明步骤思路)。例如:初始数组:a,b,c,d  每次刷新页面都会显示不同:b,c,d,a….a,d,c,b…等等
代码:

<html>
<head>
<title></title>
<meta charset="utf-8">
</head>
<body>
<!--变换顺序按钮-->
<input type="button" id="btnSort" value="变换顺序"/>
<script type="text/javascript" charset="UTF-8">
var arr=["a","b","c","d"]; //定义一个数组,内容为a,b,c,d
var btn=document.getElementById("btnSort"); //获取按钮button的节点
btn.onclick=function(){
var newArr=arrSort(arr);
console.log(newArr.join(",")); //将数组newArr的内容,在控制台以逗号分开进行输出
}
function arrSort(arr){ //定义一个函数
var newArr=[]; //定义一个新的数组
var temp=[]; //定义一个新的数组
for(var p in arr){ //引用类型不能直接用等号,通过循环来进行复制; 这里的p为下标,表示为取数组arr中的下标
temp[p]=arr[p]; //将数组arr中的数赋值给新数组temp
}
for(var i=0;i<arr.length;i++){ //随机数 最小值为0; 最大值为 数组的长度-1
var random=Math.round(Math.random()*(temp.length-1)); //生成0-数组temp.length-1的随机数
newArr[i]=temp[random]; //将数组temp随机生成的数赋值给新数组newArr
temp.splice(random,1); //删除已经生成了的随机数对应的数组temp下标的值;
}
return newArr;
}
</script>
</body>
</html>

JS写随机数的更多相关文章

  1. Node.js写文件的三种方法

    Node.js写文件的三种方式: 1.通过管道流写文件 采用管道传输二进制流,可以实现自动管理流,可写流不必当心可读流流的过快而崩溃,适合大小文件传输(推荐) var readStream = fs. ...

  2. 用JS写了一个打字游戏,反正我是通不了关

    今天想写个简单的游戏, 打字游戏好像都没写过, 那么就写打字游戏吧, gamePad包含了关卡的信息, 可以用来调整给个关卡字符下落的速度: getRandom函数会返回一个字符对象, 这个对象包含了 ...

  3. JS写小游戏(一):游戏框架

    前言 前一阵发现一个不错的网站,都是一些用html5+css+js写的小游戏,于是打算学习一番,写下这个系列博客主要是为了加深理解,当然也有一些个人感悟,如果英文好可以直接Click Here. 概述 ...

  4. 去它的h5,我还是用js写原生跨平台app吧

    智能手机功能越来越强大,已经在逐渐替代电脑的作用.百度.腾讯.阿里的移动端日活数也在逐步的赶上甚至超越电脑端用户.叫喊着“mobile first”的公司越来越多,App开发者应运而生,且队伍日趋庞大 ...

  5. 原生js写的贪吃蛇网页版游戏特效

    <meta http-equiv="Content-Type" content="text/html; charset=utf-8"> <bo ...

  6. 分享:计算机图形学期末作业!!利用WebGL的第三方库three.js写一个简单的网页版“我的世界小游戏”

    这几天一直在忙着期末考试,所以一直没有更新我的博客,今天刚把我的期末作业完成了,心情澎湃,所以晚上不管怎么样,我也要写一篇博客纪念一下我上课都没有听,还是通过强大的度娘完成了我的作业的经历.(当然作业 ...

  7. 原生 js 写分页

    欢迎留言或者加本人QQ172360937咨询 这段代码是用原生 js 写的一个分页的效果 <!doctype html> <html lang="en"> ...

  8. .NET获取不到js写的cookie解决方法

    今晚使用javascript设置一个来路的cookie,之后使用ASP.NET获取这个cookie值,发现ASP.NET获取不到JS设置的cookie值,真郁闷中,以下是JS写Cookie的代码: C ...

  9. js获取随机数

    js 获取随机数方法如下: 1.Math.random()表示 结果为0-1间的一个随机数(包括0,不包括1) : 返回指定范围的随机数(m-n之间)的公式 Math.random()*(n-m)+m ...

随机推荐

  1. jsp中的form表单中的 id和name有什么区别了

    <form action="./system/WebServer_webServerLogin" method="post" id="login ...

  2. 对System.ComponentModel.DataAnnotations 的学习应用

    摘要 你还在为了验证一个Class对象中很多数据的有效性而写很多If条件判断吗?我也同样遇到这种问题,不过,最近学了一项新的方法,让我不在写很多if条件做判断,通过给属性标注特性来验证数据规则,从此再 ...

  3. keepalived mariadb 主主

    场景描述 #安装数据库mariadb 主主模式 keepalived 调度#mysql1 192.168.30.99#mysql2 192.168.30.100#vip 192.168.30.101 ...

  4. Eclipse 的单步调试(转)

    1.设置断点在程序里面放置一个断点,也就是双击需要放置断点的程序左边的栏目上.2.调试(1)点击"打开透视图"按钮,选择调试透视图,则打开调试透视图界面,然后先设置断点,按调试按钮 ...

  5. ionic实现点击popup区域外部分来关闭popup

    var htmlEl = angular.element(document.querySelector('html')); htmlEl.on('click', function (event) { ...

  6. mysql 主从

    1.首先 主库创建二进制数据访问账户(账户:repl 密码:repl@01) GRANT REPLICATION SLAVE, REPLICATION CLIENT ON *.* to repl@'% ...

  7. 百度echarts

    <!DOCTYPE html> <head> <meta charset="utf-8"> <title>ECharts</t ...

  8. 合并分区(merge range)对事务日志的影响

    分区维护作业执行失败,错误信息如下:数据库 'XXX' 的事务日志已满.若要查明无法重用日志中的空间的原因,请参阅 sys.databases 中的 log_reuse_wait_desc 列. [S ...

  9. nodejs的request创建的get和post请求,带参数

    1.导入request : var request = require('request'); 2.get请求 request({ timeout:5000, // 设置超时 method:'GET' ...

  10. (转)SVN服务器搭建和使用(三)

    接下来,试试用TortoiseSVN修改文件,添加文件,删除文件,以及如何解决冲突等. 添加文件 在检出的工作副本中添加一个Readme.txt文本文件,这时候这个文本文件会显示为没有版本控制的状态, ...