gpt4 book ai didi

javascript - 这些导致崩溃的 For 循环有什么区别?

转载 作者:行者123 更新时间:2023-11-30 11:58:05 26 4
gpt4 key购买 nike

这是来自 Codecademy 的 Javascript 类(class)“为你的名字搜索文本”。以下作品:

var text = "My name is Zorak. Everyone calls me Zorak.";
var myName = "Zorak";
var hits = [];

for ( i=0; i < text.length; i++ ){
if (text[i] === myName[0]) {
for (var j = i; j < i + myName.length; j++) {
hits.push(text[j])
}
}
}

但是,当我用 j + myName.length 替换 i + myName.length 时,它崩溃了。完整的:

var text = "My name is Zorak. Everyone calls me Zorak.";
var myName = "Zorak";
var hits = [];

for ( i=0; i < text.length; i++ ){
if (text[i] === myName[0]) {
for (var j = i; j < j + myName.length; j++) {
hits.push(text[j])
}
}
}

当我运行这个时我没有收到任何错误,这让我相信它只是陷入了一个无限循环,除了当我在有问题的 For 循环中放置一个 console.log 标记时,它不会打印任何东西。

它崩溃的原因是什么?

最佳答案

j < j + myName.length; j++

j 永远不会到达终点。您正在递增它,但您将它与始终大于其自身的数字进行比较(假设 myName.length> 0)。循环的条件总是满足的,导致它永远运行。

关于javascript - 这些导致崩溃的 For 循环有什么区别?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/37370974/

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