Javascript 在具有for循环的字符串中查找子字符串
函数匹配str1,str2{ var匹配=假 对于str1中的i{ 如果str1[i]==str2[0]{ 对于str2中的j{ 如果str2[j]!=str1[i]{ 返回错误 }否则{ 我++ 匹配=真 } } } 回报匹配 } }Javascript 在具有for循环的字符串中查找子字符串,javascript,arrays,Javascript,Arrays,函数匹配str1,str2{ var匹配=假 对于str1中的i{ 如果str1[i]==str2[0]{ 对于str2中的j{ 如果str2[j]!=str1[i]{ 返回错误 }否则{ 我++ 匹配=真 } } } 回报匹配 } } console.logmatchumbrane,rella为什么不直接使用: console.logumbrane.includesrella为什么不使用: console.logumbrane.includesrella您仅在一次迭代后返回,更改
console.logmatchumbrane,rella为什么不直接使用:
console.logumbrane.includesrella为什么不使用:
console.logumbrane.includesrella您仅在一次迭代后返回,更改
}
return matched
}
}
到
这就是说,如果我正确理解了您的代码,现在如果它开始找到匹配项,它将失败,但随后它不匹配,稍后会有匹配项
例如
函数匹配str1,str2{
var匹配=假
顶部:
对于str1中的i{
如果str1[i]==str2[0]{
对于str2中的j{
如果str2[j]!=str1[i]{
匹配=错误
继续前进
}否则{
我++
匹配=真
}
}
如果匹配,则返回true;
}
}
回报匹配
}
console.logmatch雨伞,rella
console.Logmatch雨伞,德拉
console.logmatchumbrerellas,rella您仅在一次迭代后返回,更改
}
return matched
}
}
到
这就是说,如果我正确理解了您的代码,现在如果它开始找到匹配项,它将失败,但随后它不匹配,稍后会有匹配项
例如
函数匹配str1,str2{
var匹配=假
顶部:
对于str1中的i{
如果str1[i]==str2[0]{
对于str2中的j{
如果str2[j]!=str1[i]{
匹配=错误
继续前进
}否则{
我++
匹配=真
}
}
如果匹配,则返回true;
}
}
回报匹配
}
console.logmatch雨伞,rella
console.Logmatch雨伞,德拉
console.logmatchumbrerellas,rella迭代对象自身的可枚举键。这对于对象可能很方便,但对于数组并不总是有效
相反,请使用索引变量为0到小于长度的classic
您可以进行一些短路,在发现时尽早退出,并忽略对长度的迭代
函数匹配str1,str2{
对于设i=0,l=str1.length-str2.length+1;iconsole.log(match("umbrerella", "rella"))