課程
/前端開發
/JavaScript
/JavaScript進階篇
使用random()隨機取得0-10之間的數值。使用round()對數值進行四舍五入。 如果我想抽隨機10個數,但又不重復怎么搞?
2016-07-29
源自:JavaScript進階篇 7-16
正在回答
<!DOCTYPE html>
<html>
<head>
<meta charset="utf-8">
<title>JS隨機數</title>
<style type="text/css">
h1{text-align: center;}
p{ text-align: center; font-size: 36px;}
</style>
</head>
<body>
<h1>JS隨機數</h1><hr />
<p id="conA"></p>
<p id="conB"></p>
</body>
<script type="text/javascript">
setTimeout(function(){ window.location.reload();},1000);//每隔1秒刷新1次頁面
//Math.round() 把一個數字舍入為最接近的整數。
//math.random()取得某個范圍內的隨機數
var Array = [] || new Array();
var mupiao;
Array[0] = Math.round((Math.random()) * 10); //輸出的值的范圍 ?
for(var i = 1; i < 10; i++) ?//輸出的個數(這里是10個數)
{
mupiao = Math.round((Math.random()) * 10);
for(var a = 0; a < Array.length; a++)?
while(Array[a] == mupiao)?
}
Array[a] = mupiao;
//用js對象的特性,如何去重復:
//第一步:把數組轉成一個js對象。
//第二步:把數組中的值,變成js對象中的 key。
//第三步:把這個對象 再還原成數組。
//該方法把 組數 轉為 對象
var toObject = function(arr)
var obj = {} //創建一個私有(在函數中)的對象
for(var i = 0; i < arr.length; i++)
obj[arr[i]] = true; //這樣就把數組轉為對象了(就是把循環出來的數組 放到 對象中)
return obj;
//該方法把 對象 轉為 數組
var keys = function(obj)
var arr = []; //創建一個私有(在函數中)的數組
for(var i in obj)
if(obj.hasOwnProperty(i)) //判斷這個屬性是否屬于obj的,注hasOwnProperty是js對象中的方法
arr.push(i);//把循環出來的對象追加到數組中
return arr;
//合并方法,去除數組中的重復項
var uniq = function(arrs)
return keys(toObject(arrs));//把數arrs放到toObject方法中,然后在把toObject方法入到keys方法中并返回,就OK了。
document.getElementById('conA').innerHTML = Array;//這是原來的隨機數組
document.getElementById('conB').innerHTML = uniq(Array); //這是去重復后的隨機數組
</script>
</html>
qq_禁滅生_03414590 提問者
用if()語句把取得的隨機數和前面的比較,如果相同則不輸出,并且array.length++
var array = new Array();
var num;
array[0]=Math.round((Math.random())*100);
for(var i=1;i<10;i++){
num=Math.round((Math.random())*100);
for(var a=0;a<array.length;a++){
? ? ? ? while(array[a]==num) {num=Math.round((Math.random())*100);}
array[a]=num;?
document.write(array);
91,69,5,82,83,79,93,62,88,7
無知的狗3576298
水里有條魚 回復 無知的狗3576298
無知的狗3576298 回復 水里有條魚
q_Amily 回復 水里有條魚
q_Amily 回復 q_Amily
水里有條魚 回復 q_Amily
舉報
本課程從如何插入JS代碼開始,帶您進入網頁動態交互世界
3 回答誰幫幫我解決一下,這個疑惑?
2 回答大佬幫解決下
3 回答計時器問題,各位幫忙解決一下。。
1 回答有人幫我解答一下嗎?
4 回答誰幫我解答一下document.body.appendChild(node);
Copyright ? 2025 imooc.com All Rights Reserved | 京ICP備12003892號-11 京公網安備11010802030151號
購課補貼聯系客服咨詢優惠詳情
慕課網APP您的移動學習伙伴
掃描二維碼關注慕課網微信公眾號
2016-07-29
<!DOCTYPE html>
<html>
<head>
<meta charset="utf-8">
<title>JS隨機數</title>
<style type="text/css">
h1{text-align: center;}
p{ text-align: center; font-size: 36px;}
</style>
</head>
<body>
<h1>JS隨機數</h1><hr />
<p id="conA"></p>
<p id="conB"></p>
</body>
<script type="text/javascript">
setTimeout(function(){ window.location.reload();},1000);//每隔1秒刷新1次頁面
//Math.round() 把一個數字舍入為最接近的整數。
//math.random()取得某個范圍內的隨機數
var Array = [] || new Array();
var mupiao;
Array[0] = Math.round((Math.random()) * 10); //輸出的值的范圍 ?
for(var i = 1; i < 10; i++) ?//輸出的個數(這里是10個數)
{
mupiao = Math.round((Math.random()) * 10);
for(var a = 0; a < Array.length; a++)?
{
while(Array[a] == mupiao)?
{
mupiao = Math.round((Math.random()) * 10);
}
}
Array[a] = mupiao;
}
//用js對象的特性,如何去重復:
//第一步:把數組轉成一個js對象。
//第二步:把數組中的值,變成js對象中的 key。
//第三步:把這個對象 再還原成數組。
//該方法把 組數 轉為 對象
var toObject = function(arr)
{
var obj = {} //創建一個私有(在函數中)的對象
for(var i = 0; i < arr.length; i++)
{
obj[arr[i]] = true; //這樣就把數組轉為對象了(就是把循環出來的數組 放到 對象中)
}
return obj;
}
//該方法把 對象 轉為 數組
var keys = function(obj)
{
var arr = []; //創建一個私有(在函數中)的數組
for(var i in obj)
{
if(obj.hasOwnProperty(i)) //判斷這個屬性是否屬于obj的,注hasOwnProperty是js對象中的方法
{
arr.push(i);//把循環出來的對象追加到數組中
}
}
return arr;
}
//合并方法,去除數組中的重復項
var uniq = function(arrs)
{
return keys(toObject(arrs));//把數arrs放到toObject方法中,然后在把toObject方法入到keys方法中并返回,就OK了。
}
document.getElementById('conA').innerHTML = Array;//這是原來的隨機數組
document.getElementById('conB').innerHTML = uniq(Array); //這是去重復后的隨機數組
</script>
</html>
2016-08-11
用if()語句把取得的隨機數和前面的比較,如果相同則不輸出,并且array.length++
2016-07-29
var array = new Array();
var num;
array[0]=Math.round((Math.random())*100);
for(var i=1;i<10;i++){
num=Math.round((Math.random())*100);
for(var a=0;a<array.length;a++){
? ? ? ? while(array[a]==num) {num=Math.round((Math.random())*100);}
}
array[a]=num;?
}
document.write(array);
91,69,5,82,83,79,93,62,88,7