javascript中處理陣列來生成卡片

2021-06-22 21:31:01 字數 1591 閱讀 6667

前面的html css**類似,以下是修改js**

指令碼3-6   這個指令碼限制了每一列中值的範圍

window.onload = initall;

function initall()

} else

} function setsquare(thissquare)  

解  釋

1. var colplace = new array(0,0,0,0,0,1,1,1,1,1,2,2,2,2,3,3,3,3,3,4,4,4,4,4);

我們希望限制哪些隨機數可以放在哪一列中。最簡單的方法是給每一列分配乙個編號(b:0,i:

1,n:2,g:3,o:4),然後用以下表示式計算可以放進每一列中的數字:(列號×15)+(1~15

的隨機數)。

要用colplace陣列記錄每個格仔所屬的列。它包含0~4的數字並重複五次(要減去空的格仔。

請注意,數字2僅用了4次)。

2. var colbasis = colplace[thissquare] * 15;

var newnum = colbasis + math.floor(math.random() * 15) + 1;

我們首先計算列號:儲存在colplace[thissquare]中的數字乘以15。newnum變數仍然生成隨機數,

但不是1~75的數字,而是計算乙個1~15的隨機數,然後加上列號。因此,如果隨機數是7,那麼

它在b列中是7,在i列中是22,在n列中是37,在g列中是52,在o列中是67。

效果圖跟上篇文章一樣,只是用到了陣列

下面是使用do/while更新陣列

指令碼3-9   這個指令碼防止給定的列中出現重複的數字

window.onload = initall;

var usednums = new array(76);

function initall()

} else

} function setsquare(thissquare)

while (usednums[newnum]);

usednums[newnum] = true;

document.getelementbyid(currsquare). innerhtml = newnum;

} function getnewnum()

解釋一下

1. var newnum;

在前面的示例中,我們在建立newnum變數時對它進行初始化。因為我們將多次設定它,所以在進

入迴圈之前建立它,這樣只需建立一次。

2. do

右花括號標出do塊的結尾。

5. while (usednums[newnum]);

while檢查會使do**塊反覆執行,直到檢查結果為false為止。在這個示例中,我們檢查usednums

陣列中newnum位置上的值,從而檢查newnum是否已經使用過了。如果這個數字已經用過了,控制就

被傳遞歸do塊的開頭,整個過程再次重複。最終,我們會找到乙個沒有使用過的數字。在此之後,

就會離開迴圈,將usednums設定為true,並將newnum寫到卡片上。

javascript中處理時間

var mydate new date mydate.getyear 獲取當前年份 2007 mydate.getfullyear 獲取完整的年份 2007 mydate.getmonth 獲取當前月份 0 11,0代表1月 11 mydate.getdate 獲取當前日 1 31 20 mydat...

javascript中處理時間

var mydate new date mydate.getyear 獲取當前年份 2007 mydate.getfullyear 獲取完整的年份 2007 mydate.getmonth 獲取當前月份 0 11,0代表1月 11 mydate.getdate 獲取當前日 1 31 20 mydat...

JavaScript中的陣列

陣列 引數 返回值原陣列是否改變 1 向陣列尾部新增push 引數可以是乙個或多個 返回值是新增後陣列的長度 原陣列改變 2 刪除陣列的最後一項pop 沒有引數 返回值是刪除的那個數 原陣列改變 3 向陣列的頭部新增unshift 引數可以是乙個或多個 返回值是新增後陣列的長度 原陣列改變 4 刪除...