[英]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.