Return true if the string in the first element of the array contains all of the letters of the string in the second element of the array.

For example, ["hello", "Hello"], should return true because all of the letters in the second string are present in the first, ignoring case.

The arguments ["hello", "hey"] should return false because the string hello does not contain a y.

Lastly, ["Alien", "line"], should return true because all of the letters in line are present in Alien.

Solution 1

function mutation(arr) {
  let str1 = arr[0].toLowerCase();
  let str2 = arr[1].toLowerCase();
  let charCountsStr1 = _buildCharCounts(str1);
  for (let ch of str2) {
    if (str1.indexOf(ch) === -1) {
      return false;
    }
  }
  return true;
}

mutation(["hello", "hey"]);

 

Solution 2

function mutation(arr) {
  let str1 = [...arr[0].toLowerCase()];
  let str2 = [...arr[1].toLowerCase()];
  return str2.every(ch => {
    return str1.indexOf(ch) !== -1
  });
}