indexOf()with for循环

时间:2018-04-12 21:05:20

标签: javascript indexof

我试图检查数组的第一个元素是否包含数组第二个元素的所有字母。但它在这些给定的属性上无法正常工作。我无法找到我在哪里犯错?



function mutation(arr) {
  var first = arr[0].toLowerCase();
  var second = arr[1].toLowerCase();
  
    for(i = 0; i<second.length; i++){
     return first.indexOf(second[i]) !== -1 ? true : false;
    }


}

mutation(["hello", "hey"]);
&#13;
&#13;
&#13;

1 个答案:

答案 0 :(得分:0)

您使用的条件不正确。您应该检查第二个元素的所有字符是否都包含在第一个元素中。因此,您必须检查第二个元素字符的每个字符的第一个元素上调用的indexOf是否返回true。如果是这样,那么第二个元素的所有字符确实都包含在第一个元素中。否则就是假的。

你可以试试这个:

&#13;
&#13;
function mutation(arr) {
    var first = arr[0].toLowerCase();

    // we use split to get an array of the characters contained in the second element
    var second = arr[1].toLowerCase().split('');
   
    return second.every(character=>first.indexOf(character)>-1)
}

console.log(mutation(["hello", "hey"]));
console.log(mutation(["hello", "heo"]));
&#13;
&#13;
&#13;