gpt4 book ai didi

javascript - 未知原因无限循环

转载 作者:行者123 更新时间:2023-11-28 18:56:57 26 4
gpt4 key购买 nike

我很困惑为什么会这样:

regResponse.splice(i+1, 0, newString);

导致无限循环或类似的情况(页面无法加载)。如果我把它放在 if block 之外,它不是一个无限循环,但我想要做的逻辑将不起作用。这是怎么发生的?我不明白为什么它会卡住页面。

如果你放

break;

紧接在 regResponse.splice 行之后,您将在控制台日志中看到我正在做的事情的逻辑开始结合在一起,因为标题和链接本身现在对于前三个项目是分开的(直到它到达if 循环条件并跳出)。

var myString = "Accel World| http://www.anime-planet.com/anime/accel-worldAh !我的女神| http://www.anime-planet.com/anime/ah-my-goddessAh !我的女神 TV| http://www.anime-planet.com/anime/ah-my-goddess-tvAi Yori Aoshi| http://www.anime-planet.com/anime/ai-yori-aoshiAir Gear| http://www.anime-planet.com/anime/air-gear "

myString = myString.replace(/([a-z])([A-Z])/g, '$1 $2');

var reg = /[^|]+/g;
var regResponse = myString.match(reg);
console.log(regResponse);


for(i = 0; i < regResponse.length; i++) {
if (regResponse[i].length > 20) {
space = regResponse[i].indexOf(' ');
var newString = regResponse[i].substring(space+1, regResponse[i].length);
regResponse[i] = regResponse[i].slice(0, space);
regResponse.splice(i+1, 0, newString);



}

}

最佳答案

无限循环是在循环遍历数组时扩展数组(使用 splice )的结果。尝试向后执行循环以避免这种情况:

for (i = regResponse.length-1; i>=0; i--) {

http://jsfiddle.net/mblase75/cgop02f1/

关于javascript - 未知原因无限循环,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/33424548/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com