Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/variables/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript while循环子串问题中的两个字符串不相等?_Javascript - Fatal编程技术网

Javascript while循环子串问题中的两个字符串不相等?

Javascript while循环子串问题中的两个字符串不相等?,javascript,Javascript,我现在对我写的这段代码有点困惑(这不是这个问题最优雅的解决方案-请忽略)。但我能理解为什么这个循环会在它说(参见代码片段)“h”==“h”时中断,两个值都是字符串,两个值的长度都是1&并且编码相同 我肯定我错过了一些非常愚蠢的事情,但我似乎无法理解 函数发行顺序(checkStr,str){ 让电流=0 while(str[当前]){ if(str[current]==checkStr[0]){ for(设i=0;i

我现在对我写的这段代码有点困惑(这不是这个问题最优雅的解决方案-请忽略)。但我能理解为什么这个循环会在它说(参见代码片段)“h”==“h”时中断,两个值都是字符串,两个值的长度都是1&并且编码相同

我肯定我错过了一些非常愚蠢的事情,但我似乎无法理解

函数发行顺序(checkStr,str){
让电流=0
while(str[当前]){
if(str[current]==checkStr[0]){
for(设i=0;i
“h”=“h”,两个值都是字符串,两个值的长度都是1&并且编码相同

这管用
再看一看代码,您可以看到
如果(str[current]==checkStr[0]){
完成了它的工作,让我们转到
for
循环。
然后比较
(checkStr[i]!==str[current+1])

在本例中,checkStr[i](i是0)是h,str[current+1](current是0,但您正在添加1)是e。
在您要打印的日志中: 检查str[i](i为0),str[current+i](current为0,i为0),因此您正在打印h和h,
但是你在比较
checkStr[i](i是o)==str[current+1](current是0),因此您正在比较h(checkStr[0])和e(str[1])。

使用
.charCodeAt()
提供不同的结果。您的日志记录
str[current+i]
和检查
str[current+1]
谢谢,@codemanic这是一件非常愚蠢的事情,我确信我错过了。为什么不使用String.includes()函数?̀console.log(“hello world.includes”(“hello”))`