javascript - 为什么我的 while 循环没有完全迭代?

标签 javascript loops while-loop

所以这是我下面的代码,这个程序的目标是检查是否可以在第一个字符串中找到第二个字符串的字母。但是我发现我不是问题,它的值(value)在增加。所以循环只经过一次。所以这个程序在它找到并返回 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/

相关文章:

javascript - 删除对象中找到的所有 "true"和 "false"周围的引号

java - GUI 在 Java 的 While 循环期间卡住

javascript - API调用的并发请求

javascript - 检查单选按钮是否被选中,但不起作用

javascript - 递归Function.prototype.apply概念理解

java - True boolean while 语句在嵌套 if 中不退出循环

Java Actionlistener 提交按钮

javascript - 多选验证

loops - Go:比较两个 slice 并删除多个索引

loops - 如何为SVG动画路径的d制作连续循环