所以这是我下面的代码,该程序的目标是检查是否可以在第一个字符串中找到第二个字符串的字母。但是我发现我的问题不是价值增加。因此,循环仅进行一次。因此,该程序以找到的第一个字母结束并返回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"]);

最佳答案

这也许吗?

function mutation(arr) {
  var str = arr[1];
  str = str.toLowerCase().split("");
  // iterating an array screams "for loop"
  for (var i=0; i < str.length; i++) {
    // if the letter was not found exit immediately
    if (arr[0].indexOf(str[i]) == -1) return false;
  }
  // since it didn't exit before, all the letters must have been found.
  return true;
}

关于javascript - 为什么我的while循环没有完全遍历?,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/35929674/

10-16 21:19