繁体   English   中英

检查字符串中的字母

[英]Checking for letters in a string

我正在制定算法,该算法检查第一个单词中是否存在第二个单词的字母。 因此,例如:[“ hello”,“ hey”]应该返回false,而[“ hello”,“ Ello”]应该返回true。 这是我的代码:

function mutation(arr) {
  var array = arr[0].toLowerCase();
  var word_temp = arr[1].toLowerCase();
  var word = word_temp.split("");
  var l = word_temp.length;
  var number = 0;
  for (i = 0; i == l; i++) {
    if (array.indexOf(word[i]) > -1) {
      number++;
    }
  }
  if (number == l) {
    return true;
  } else {
    return false;
  }
}

mutation(["zyxwvutsrqponmlkjihgfedcba", "qrstu"]);

我不知道为什么,但它不添加任何变量number 我不想要完整算法的解决方案。 我只想知道为什么变量number仍然等于零。 谢谢大家的时间:)

您的for循环是错误的。 它应该是:

for (i = 0; i < l; i++) {
//Code
}

您的代码是不必要的复杂。 你可以这样走。

function mutation(arr) {
    return (arr[0].toLowerCase().indexOf(arr[1].toLowerCase())>=0);
}
console.log(mutation(["zyxwvutsrqponmlkjihgfedcba", "qrstu"]));

For循环:

如果condition的值为true,则执行循环语句。 如果condition的值为false,则for循环终止。

您的陈述从一开始就是false的。 只需将i == l更改为i < l

function mutation(arr) {
  var first = arr[0].toLowerCase();
  var second = arr[1].toLowerCase();
  return first.indexOf(second) !== -1;
}

console.log(mutation(["zyxwvutsrqponmlkjihgfedcba", "jihg"]));
console.log(mutation(["hello", "ell"]));

问题解决了。 我修复了for循环并使代码更短。 然后,我还尝试了带有include的解决方案,它甚至更容易。 非常感谢大家!

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM