javascript - 如何修改此代码以在循环内创建循环?
问题描述
我从一个网站上找到了这个脚本。当它以 2 秒的间隔跟踪 40 个 Instagram 帐户时,循环结束。如何修改脚本,使其等待 10 分钟,然后再重复相同的循环 3 次?基本上,它是:
- 关注账号并等待 2 秒 X40
- 等待 10 分钟
- 关注账号并等待 2 秒 X40
- 等待 10 分钟
- 关注账号,等待两秒 X40
- 等待 10 分钟
- ---循环结束---
var TagFollow = document.getElementsByTagName("button");
var SearchFollow = "Follow";
var foundFollow;
function clickfollow(){
for (var i = 0; i < TagFollow.length; i++) {
if (TagFollow[i].textContent == SearchFollow) {
foundFollow = TagFollow[i];
foundFollow.click();
break;
}
}
}
var i = 1;
function myLoop() {
setTimeout(function() {
console.log(new Date().toLocaleTimeString());
clickfollow();
//document.getElementsByTagName("ul")[3].scrollIntoView(false
i++;
if (i < 41) {
myLoop();
}
}, 2000)
}
myLoop();
提前致谢!
解决方案
您不需要嵌套循环。您可以在单个循环中“线性化”它们(我现在不记得正确的温度了)。所以基本上你想要循环,3 * 40 = 120
并且在每 40 次之后你需要使用增加的延迟10 * 60 * 1000 = 600000
。您可以通过使用模函数来帮助自己i%40
。因为您从 1 开始,所以每第 40 次迭代是当i
除以 40 的余数为零时。
所以基本上if (i < 41)
改为if (i < 121)
和}, 2000)
}, i%40 === 0 ? 600000 : 2000)
推荐阅读
- css - 如何在 Chrome 中使用 `display: flex` 获得`column-gap` 的效果?
- azure - 持久性 AKS 容器的日志
- javascript - 如何调用具有不同值的函数而不在每次渲染时重新创建新的箭头函数?
- php - 是否有任何 php 函数等到 aws lightail 实例状态正在运行?
- javascript - 如果执行了任何一行,则在 Chrome DevTools 中调试 js 文件
- python - python中的日期和时间以及字符串
- javascript - 我无法获取图片的下载 URL
- apache-kafka - 关于 Kafka HDFS 2 Connector 的许可
- c# - 如何在 wpf 中使用 c# 在基于 xml 标签的形状处理程序处拖动?
- c# - 如何确保可以加载 auth.dll?