关于基本算法挑战,如果数组的第一个元素中的字符串包含第二个元素中字符串的所有字母,则用户必须返回true
。数组,例如:
["hello", "Hello"]
应该返回true
。
["Alien", "line"]
应该返回true
。
到目前为止,我已经尝试过这个:
function mutation(arr) {
var value1 = arr[0].toLowerCase();
var value2 = arr[1].toLowerCase();
for (var i = 0; i < value2.length; i++) {
if (value1.indexOf(value2.charAt(i)) !== -1)
return true;
else
return false;
}
}
}
mutation(["hello", "hey"]);
在传递值mutation(["hello", "hey"])
时,它不会返回false
。
答案 0 :(得分:0)
indexOf
返回-1
从循环中断并返回false,否则让循环运行完成并在之后返回true(因为它没有提前返回,我们知道所有字符都存在)
function mutation(arr) {
var value1 = arr[0].toLowerCase();
var value2 = arr[1].toLowerCase();
for(var i=0;i<value2.length;i++){
if(value1.indexOf(value2.charAt(i)) === -1) { return false; }
}
return true;
}
mutation(["hello", "hey"]);
答案 1 :(得分:0)
检查出来:
function mutation(arr) {
var value1 = arr[0].toLowerCase();
var value2 = arr[1].toLowerCase();
var result = true;
for (var i = 0; i < value2.length; i++) {
if (value1.indexOf(value2.charAt(i)) === -1)
result = false;
}
alert(result);
}
mutation(["Alien", "line"]);
mutation(["hello", "Hello"]);
mutation(["hello", "hey"]);
Plunker:https://plnkr.co/edit/csauovjhFeFltkbqRxjx?p=preview