嗨,我是 jquery/javascript 的新手,我有一个 for 循环,我需要从 1 到 4 按顺序运行它。但是当“for 循环”停止时,元素应该停止 1,2, 3 或 4(随机)。是否有可能?因为现在我所做的是,它总是停在第 4 点。请帮忙。谢谢..
您可以在此处访问代码:
https://codesandbox.io/s/angry-hodgkin-esr8f?file=/index.html:0-904
这是代码:
<!DOCTYPE html>
<html>
<head>
<script
src="https://ajax.googleapis.com/ajax/libs/jquery/1.7.1/jquery.min.js"
type="text/javascript"
></script>
</head>
<body style="background: gray;">
<button id="k">Hello</button>
</body>
</html>
<script>
var data = [
{
count: "1",
name: "one"
},
{
count: "2",
name: "two"
},
{
count: "3",
name: "three"
},
{
count: "4",
name: "four"
}
];
$("#k").click(function () {
let count = 0;
const interVal = setInterval(function () {
for (let i = 0; i < data.length; i++) {
// loop through the data array
const _data = data[i];
setTimeout(function () {
console.log("data", _data.count);
}, 50 * i);
}
count += 1;
if (count === 3) clearInterval(interVal);
}, 600);
});
</script>
答案 0 :(得分:2)
我认为最简单的答案是在您感兴趣的范围之间生成一个随机数,并使用该数字作为 for 循环的结尾。您可以使用以下功能:
function getRndInteger(min, max) {
return Math.floor(Math.random() * (max - min) ) + min;
}
这将返回一个随机整数,其中包含最小值,排除最大值。如果将其添加到代码中,则对 for 循环的调用可能如下所示:
for (let i = 0; i <= getRndInteger(1, 5); i++) {
希望有帮助!
提示:您应该始终提供较小版本的代码,以便了解您的要求。
答案 1 :(得分:1)
我假设您想使用 for 随机化循环次数。因此执行以下步骤:
//Add code to generate a random number
const random = (min, max) => Math.floor(Math.random() * (max - min)) + min;
//Modify thel clearIntervl line:
if (count == random) clearInterval(interVal);