刚学html的菜鸟,求教如何写这个代码? 我要从1-10里面产生随机数,比如说要产生4个随数,一次只产生一个随机数,并且不重复;如第一次产生的随机数是1,就把1从数组中拿掉,第二次产生随机数就在2-9里面产生,请问下着改怎么写?(注意:一次只产生1个随机数,不是一次产生4个) 解决方案 » 免费领取超大流量手机卡,每月29元包185G流量+100分钟通话, 中国电信官方发货 <script type="text/javascript"> var seeds = [1,2,3,4,5,6,7,8,9,10]; var getRand = function () { if(seeds.length == 0){ alert("没了"); return; } var rand = Math.ceil(Math.random()*seeds.length); var result = seeds[rand-1]; seeds.splice(rand-1,1); return result; }; </script> <input type="button" value="" onclick="getRand()" /> JS有着强大的数组操作函数 例如push()pop()思路就是用数组来实现 例如数组a初始10个值,分别是1~10,然后进行4次循环 每次循环从数组长度中随机获取一个位置值n,然后输出a[n],接着用splice把当前位置的数组元素删除,接着进行下一次循环,直到循环结束代码如下,请放在<body></body>标签中测试<script language="javascript">var a=Array(,1,2,3,4,5,6,7,8,9,10);for (var i=0;i<4;i++){ b=parseInt(a.length*Math.random()); document.write("time"+(i+1)+"="+a[b]+"<br>"); a.splice(b,1);}</script> <html xmlns="http://www.w3.org/1999/xhtml"><head><meta http-equiv="Content-Type" content="text/html; charset=utf-8" /><title>无标题文档</title></head><script type="text/javascript"> function GetRandomNum(Min, Max) { var Range = Max - Min; var Rand = Math.random(); return (Min + Math.round(Rand * Range)); } Array.prototype.remove = function (dx) { if (isNaN(dx) || dx > this.length) { return false; } for (var i = 0, n = 0; i < this.length; i++) { if (this[i] != this[dx]) { this[n++] = this[i] } } this.length -= 1 } var number = [0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10]; var str = []; for (var i = 0; i < 4; i++) { var j = GetRandomNum(1, 10-i); str[i] = number[j]; number.remove(j); } alert(str);</script><body></body> 2楼 你的最后一句a.splice(b,1);是不是把把上一个产生的随机数删掉,b是什么? function getRandomNumbers(start,end,times){ if(!(end - start))return end; var randomNumberArr = [], resultArr = [], i; for(i = start;i <= end;i += 1){ randomNumberArr[randomNumberArr.length] = i; } for(i = 0,len = times || 4;i < len; i += 1){ if(!randomNumberArr.length)break; var r = Math.ceil(Math.random()*randomNumberArr.length); resultArr[resultArr.length] = randomNumberArr[r - 1]; randomNumberArr.splice(r - 1,1); } return resultArr;}alert(getRandomNumbers(1,10,4)); html怎么获取json数据 javaScript 中的mergeAttributes方法 一个关于JS给textarea赋值的问题!请指教 求解一个网页限制问题 求大神帮助 如何判断访问后台的系统类型 在某输入框中输入回车,如何将焦点移到下一输入框中? 如何在框架网页中加入onunload事件?急 高手们请进! 一般在点击文字时链接打开一个播放器播放。怎样用本页创建的播放器播放midi2.rmi? 怎么实现点击按钮 换一组轮播图?求大神 有能将图片名字,自动成为title和alt的JS代码吗? (急急急)Dojo xhrGet 怎么解析服务器响应的数据
var seeds = [1,2,3,4,5,6,7,8,9,10];
var getRand = function () {
if(seeds.length == 0){
alert("没了");
return;
}
var rand = Math.ceil(Math.random()*seeds.length);
var result = seeds[rand-1];
seeds.splice(rand-1,1);
return result;
};
</script>
<input type="button" value="" onclick="getRand()" />
思路就是用数组来实现 例如数组a初始10个值,分别是1~10,然后进行4次循环 每次循环从数组长度中随机获取一个位置值n,然后输出a[n],接着用splice把当前位置的数组元素删除,接着进行下一次循环,直到循环结束
代码如下,请放在<body></body>标签中测试
<script language="javascript">var a=Array(,1,2,3,4,5,6,7,8,9,10);
for (var i=0;i<4;i++){
b=parseInt(a.length*Math.random());
document.write("time"+(i+1)+"="+a[b]+"<br>");
a.splice(b,1);
}</script>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<title>无标题文档</title>
</head>
<script type="text/javascript">
function GetRandomNum(Min, Max) {
var Range = Max - Min;
var Rand = Math.random();
return (Min + Math.round(Rand * Range));
}
Array.prototype.remove = function (dx) {
if (isNaN(dx) || dx > this.length) { return false; }
for (var i = 0, n = 0; i < this.length; i++) {
if (this[i] != this[dx]) {
this[n++] = this[i]
}
}
this.length -= 1
}
var number = [0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10];
var str = [];
for (var i = 0; i < 4; i++) {
var j = GetRandomNum(1, 10-i);
str[i] = number[j];
number.remove(j);
}
alert(str);
</script>
<body></body>
是不是把把上一个产生的随机数删掉,b是什么?
function getRandomNumbers(start,end,times){
if(!(end - start))return end;
var randomNumberArr = [],
resultArr = [],
i;
for(i = start;i <= end;i += 1){
randomNumberArr[randomNumberArr.length] = i;
}
for(i = 0,len = times || 4;i < len; i += 1){
if(!randomNumberArr.length)break;
var r = Math.ceil(Math.random()*randomNumberArr.length);
resultArr[resultArr.length] = randomNumberArr[r - 1];
randomNumberArr.splice(r - 1,1);
} return resultArr;
}alert(getRandomNumbers(1,10,4));