gpt4 book ai didi

javascript - string.length + 计数器变量的使用

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

我是编程新手,目前正在 CodeAcademy 上学习 javascript .下面的代码来自教程,其中程序将搜索字符串以查找名称。该程序将遍历数组,将每个字母与您姓名的第一个字母进行比较,如果它看到该字母:它会将那个字母和它后面的所有字母插入一个数组,当它插入的字母数量等于你名字中的字母数量时停止。

我不明白的是:for (var j = i; j < (myName.length + i); j++)为什么 j <(myName.length + i)而不是 j<(myName.length) ?如果“Eric”的字母“E”是字符串中的第 25 个字符,则不会 j<(myName.length + i) = j<("4" + "25")这是错误的,因为正确的代码应该是 j<("4")其中 4 是名字 Eric 的长度。

我试过使用 j<(myName.length) 运行代码但它不起作用,我似乎不明白为什么。

text = "Blah blah blah blah blah blah Eric \
blah blah blah Eric blah blah Eric blah blah \
blah blah blah blah blah Eric";

var myName = "Eric";
var hits = [];

// Look for "E" in the text
for(var i = 0; i < text.length; i++) {
if (text[i] == "E") {
// If we find it, add characters up to the length of my name to the array
for(var j = i; j < (myName.length + i); j++) {
hits.push(text[j]);
}
}
}

if (hits.length === 0) {
console.log("Your name wasn't found!");
} else {
console.log(hits);
}

最佳答案

在你的内部循环中,你正在这样做:

for(var j = i;

当条件 if (text[i] == "E") { 得到满足时,i 的值非常高 (30)。

现在,当您执行此操作时:

for(var j = i; j < (myName.length); j++) {

你基本上是这样做的 -

 for(var j = 30; j < 4; j++) {

所以循环永远不会开始;因为不满足边界条件。

但是当你这样做时:

for(var j = i; j < (myName.length+i); j++) {

那么你这样做:

for(var j = 30; j < (30+4) ; j++) {

因此一切正常,它应该的方式。

关于javascript - string.length + 计数器变量的使用,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/15997008/

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