如何检查字符串中的所有字符是否都出现在另一个字符串中?

时间:2016-05-10 21:49:11

标签: javascript string

关于基本算法挑战,如果数组的第一个元素中的字符串包含第二个元素中字符串的所有字母,则用户必须返回true。数组,例如

  1. ["hello", "Hello"]应该返回true

  2. ["Alien", "line"]应该返回true

  3. 到目前为止,我已经尝试过这个:

    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

2 个答案:

答案 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