3 回答

TA貢獻1869條經驗 獲得超4個贊
您的函數一次遍歷所有數組,這就是為什么您只看到最后一個。
在函數外保留一個計數器并在每次調用時增加它:
var bunnyArr = ["Rabbits don't eat root vegetables, such as carrots", "baby rabbits are called kittens", "A group of rabbits are called a fluffel"];
var index = 0;
var total = bunnyArr.length;
function bunnyStat() {
if (index == total) {
index = 0;
}
document.getElementById('listItem1').textContent = bunnyArr[index++];
}
setInterval(bunnyStat, 10000);
<div id="listItem1"></div>

TA貢獻1785條經驗 獲得超8個贊
其他人給出了正確的答案。作為獎勵,我隨機化了數組,而不是在同一序列上循環。
var lastBunnyStat = 0;
var bunnyArr = [
"Rabbits don't eat root vegetables, such as carrots",
"Baby rabbits are called kittens",
"A group of rabbits are called a fluffel",
"Rabbits can turn their ears 180 degrees",
"Their ears can pinpoint the exact location of a sound",
"Rabbits don’t make good pals."
];
bunnyArr.sort(function() {
return 0.5 - Math.random();
});
// console.log(bunnyArr);
function bunnyStat() {
document.getElementById('listItem1').textContent = bunnyArr[lastBunnyStat++];
if (lastBunnyStat >= bunnyArr.length) {
lastBunnyStat = 0;
bunnyArr.sort(function() {
return 0.5 - Math.random();
});
// console.log('endofloop');console.log(bunnyArr);
}
}
setInterval(bunnyStat, 1200);//change to 10000

TA貢獻1803條經驗 獲得超3個贊
這是因為bunnyStat()它非??焖俚匮h遍歷數組的所有三個元素,并在最后一個元素上結束。試試這樣的:
var lastBunnyStat = 0;
var bunnyArr = [
"Rabbits don't eat root vegetables, such as carrots",
"baby rabbits are called kittens",
"A group of rabbits are called a fluffel"
];
function bunnyStat() {
document.getElementById('listItem1').textContent = bunnyArr[lastBunnyStat++];
if (lastBunnyStat >= bunnyArr.length) {
lastBunnyStat = 0;
}
}
setInterval(bunnyStat, 10000);
添加回答
舉報