對於我的網頁中的一個元素,我希望文本每十秒鐘更改一次,並且要更改該類。文本更改很容易,因爲課程更改,但我遇到了for
循環的麻煩,我覺得我錯過了一些東西。For循環迭代一次發生一次而不是延遲
我想讓for loop
在數組中選擇一個隨機派系,然後將其應用於元素。對於我的測試,我一直在使用console.log
而不是DOM操作。
首先,設置我陣列:
var factions = ["Enforcers", "Reapers", "Ular Boys", "Roaches"];
然後,我想是一些在參考隨機選擇該陣列的變量:
var x = factions[Math.floor(Math.random()*factions.length)];
從這一點,我想能夠在其他地方運行Math.floor
和Math.random
功能。
function reDefine() {
x = factions[Math.floor(Math.random()*factions.length)];
console.log(x);
}
最後,我想for loop
運行200次(我選擇了200倍,因爲它遠遠超越了時間的用戶將被留在網站上),所以我告訴它數到200( i = 0; i < 200
)。之後,我希望每次迭代都要等待10秒,所以我有一個延遲10000
(毫秒)的Timeout
函數。然後,代碼爲reDefine
,然後在測試的情況下,console.log
變量的新定義爲x
。
function reChange() {
for (var i = 0; i < 200; i++) {
setTimeout(function() {
reDefine();
console.log("Chosen faction is now: " + x);
}, 10000);
}
}
相反計數到1
(第一次迭代),等待10000
,然後重新定義x
的,它重新定義x
二百次,然後記錄他們。
有沒有什麼我在這裏專門做錯了,也許與Timeout
函數?
你的意思是說,你的代碼應該在每個派系之間等待10秒(我的回答),或者你在等待時造成同一派系被記錄200次(Praveen的答案)? – ssube