Amo*_*aro -1 javascript arrays loops
我有以下脚本,每隔150ms 从数组(所有,一些或一个)中随机获取一个单词。现在,我想不是随机地从数组中获取单词,而是以循环的方式获取(因此顺序为“ all”,“ some”,“ one”,“ all”,“ some”,“ one”等上)。我该怎么办?
var array = ['all', 'some', 'one'],
words = null;
var getWord = function() {
return [array[Math.floor(Math.random() * array.length)]];
};
setInterval(function() {
words = getWord();
$('#random-word').html(words[0]);
}, 150);Run Code Online (Sandbox Code Playgroud)
<script src="https://cdnjs.cloudflare.com/ajax/libs/jquery/3.3.1/jquery.min.js"></script>
<p id="random-word"></p>Run Code Online (Sandbox Code Playgroud)
只要有一个持久计数器变量,您可以在每次调用时增加getWord:
const array = ['all', 'some', 'one']
let counter = 0;
const getWord = () => array[counter++ % array.length];
setInterval(() => {
$('#random-word').html(getWord());
}, 500);Run Code Online (Sandbox Code Playgroud)
<script src="https://cdnjs.cloudflare.com/ajax/libs/jquery/3.3.1/jquery.min.js"></script>
<div id="random-word"></div>Run Code Online (Sandbox Code Playgroud)
或者,如果您不喜欢++表达式上下文中的:
const array = ['all', 'some', 'one']
let counter = 0;
const getWord = () => {
const word = array[counter % 3];
counter++;
return word;
};
setInterval(() => {
$('#random-word').html(getWord());
}, 500);Run Code Online (Sandbox Code Playgroud)
<script src="https://cdnjs.cloudflare.com/ajax/libs/jquery/3.3.1/jquery.min.js"></script>
<div id="random-word"></div>Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
70 次 |
| 最近记录: |