为什么不能重新分配 var?
why the var cannot be reassign?
我调试这个函数,我发现var indexOfString在找到一个索引后无法更新,为什么?
function occurrencesOfSubstring(fullString, substring){
var countOfString = 0
var indexOfString = 0
while(true){
indexOfString = fullString.indexOf(substring,indexOfString)
if (indexOfString > 0){
countOfString += 1
}else{
return countOfString
}
}
}
试试这个:
var indexOfString = -1;
...
indexOfString = fullString.indexOf(substring,indexOfString + 1);
否则,每次循环都会找到相同的索引。
此外,请记住索引是从零开始的,因此如果字符串的 "first" 字符开始匹配您的子字符串,您将得到 0
作为结果。因此,您可以将条件更改为:
if (indexOfString >= 0){
countOfString += 1
}else{
return countOfString
}
谢谢各位,知道问题出在哪里了
function occurrencesOfSubstring(fullString, substring){
var countOfString = 0
var indexOfString = 0
while(true){
indexOfString = fullString.indexOf(substring,indexOfString + 1)
if (indexOfString > 0){
countOfString += 1
}else{
return countOfString
}
}
}
我调试这个函数,我发现var indexOfString在找到一个索引后无法更新,为什么?
function occurrencesOfSubstring(fullString, substring){
var countOfString = 0
var indexOfString = 0
while(true){
indexOfString = fullString.indexOf(substring,indexOfString)
if (indexOfString > 0){
countOfString += 1
}else{
return countOfString
}
}
}
试试这个:
var indexOfString = -1;
...
indexOfString = fullString.indexOf(substring,indexOfString + 1);
否则,每次循环都会找到相同的索引。
此外,请记住索引是从零开始的,因此如果字符串的 "first" 字符开始匹配您的子字符串,您将得到 0
作为结果。因此,您可以将条件更改为:
if (indexOfString >= 0){
countOfString += 1
}else{
return countOfString
}
谢谢各位,知道问题出在哪里了
function occurrencesOfSubstring(fullString, substring){
var countOfString = 0
var indexOfString = 0
while(true){
indexOfString = fullString.indexOf(substring,indexOfString + 1)
if (indexOfString > 0){
countOfString += 1
}else{
return countOfString
}
}
}