【发布时间】:2016-03-10 23:54:50
【问题描述】:
所以这是我下面的代码,这个程序的目标是检查第二个字符串的字母是否可以在第一个字符串中找到。但是我发现了我没有的问题,它的价值增加了。所以循环只经过一次。所以这个程序在它找到的第一个字母处结束并返回true。如何让 i 增加以便遍历字符串的每个字符?
function mutation(arr) {
var str = arr[1];
str = str.toLowerCase().split("");
var i = 0;
while (i < arr.length) {
if (arr[0].indexOf(str[i]) > -1) {
//return arr[i].indexOf(str[i], i);
return true;
} else {
return false;
}
i++;
}
}
mutation(["hello", "hey"]);
【问题讨论】:
-
return将从您的函数中退出,而不是从 while 循环中退出。该函数应该返回什么/何时返回? -
我的猜测是,当您找到匹配项时,您不想
return true;,而是希望将布尔值设置为 true,只要满足您的条件并在最后返回该布尔值 -
你会立即从函数中返回。相反,您可能只想在未找到字母 时返回 false,然后在末尾返回 true 以指示已找到所有字母。
-
你在增量之前返回。
-
@cmbuckley 只有在第二个字符串中找到的所有字符都可以在第一个字符串中找到时,该函数才应返回 true
标签: javascript loops while-loop