作者d062637776 (Sylar)
看板Ajax
標題Fw: [請問] java script 1~10不重復亂數
時間Fri Nov 30 14:25:40 2012
※ [本文轉錄自 ask 看板 #1Gk4Xm7e ]
作者: d062637776 (Sylar) 看板: ask
標題: [請問] java script 1~10不重復亂數
時間: Fri Nov 30 13:47:25 2012
各位好
關於JS的1~10隨機取不重複亂數有自行GOOGLE過
找到目前能力勉強還所及的程式碼
首先解釋genRnd(min, max, takeOut:int)三個參數:分別是最小值,最大值,和要取幾
個數。意思就是說你想從最小值到最大值這個區間取幾個不重複的隨機亂數
function genRnd(min, max, takeOut:int) {
var total:int = max - min + 1;
var remain:int = total;
for (var i:int=1; i<=total; i++) {
this["t" + i] = min + i - 1;
}
for (i=1; i<=takeOut; i++) {
var temp:int = Math.floor(Math.random()*remain + 1);
this["data" + i] = this["t" + temp] ;
for(var j:int=temp; j<=(remain); j++) {
this["t" + j] = this["t"+(j+1)];
}
remain--; }
}
1.想請問這紅字部分的this["??"+?]這個用法是什麼 ? 學校還沒教過
2.我想取1~10隨機1個不重複數然後存到變數num,以這個程式碼來說我應該將
哪個輸出存到變數num呢?
------------------------------------------
有更好的辦法嗎
--
※ 發信站: 批踢踢實業坊(ptt.cc)
◆ From: 59.127.196.225
※ 發信站: 批踢踢實業坊(ptt.cc)
※ 編輯: d062637776 來自: 59.127.196.225 (11/30 14:30)
1F:推 mrbigmouth:這不是javascript吧? total:int是什麼東西.... 11/30 16:16
2F:推 mrbigmouth:直接num = Math.ceil(Math.random() * 10)就可以了吧? 11/30 16:19
3F:→ mrbigmouth:嗯要不重複 不過下面有人回了 11/30 16:19
4F:→ Darkland:紅字的部份,對物件來說 obj.aaa 跟 obj['aaa'] 一樣 11/30 19:28