使用 javascript,我想检查第一个数组元素中的字符串是否包含第二个数组元素的所有字母。如果是,则返回 true。例如。 ["Mary", "Aarmy"] => true; ["hello", "hey"] => false.
我尝试了以下代码,它适用于 ["Mary", "Aarmy"] 和 ["voodoo", "no"],但不适用于 ["hello", "hey"]。感谢任何帮助,谢谢!
function mutation(arr){
var str1 = arr.pop().toLowerCase();
var str2 = arr.pop().toLowerCase();
for(var i = 0; i < str2.length; i++){
if(str1.indexOf(str2[i]) !== -1){
return true;
}
else return false;
}
}
最佳答案
当您使用 pop()
时,它将返回数组中的最后一个元素,而不是第一个。
您的 if else
也在 for
中并且有一个返回语句。这不会让 for
循环完全运行并在第一个循环之后返回。
function mutation(arr){
var str2 = arr.pop().toLowerCase();
var str1 = arr.pop().toLowerCase();
console.log("str1: " + str1);
console.log("str2: " + str2);
for(var i = 0; i < str2.length; i++){
if(str1.indexOf(str2[i]) === -1){
return false;
}
}
return true;
}
arr = ["hello", "hey"];
console.log(mutation(arr));
arr = ["Mary", "Aarmy"];
console.log(mutation(arr));
关于javascript - 在第一个数组元素的第二个数组元素中查找字母,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/43433944/