题目描述:
如果数组第一个字符串元素包含了第二个字符串元素的所有字符,函数返回true。
举例,[“hello”, “Hello”]应该返回true,因为在忽略大小写的情况下,第二个字符串的所有字符都可以在第一个字符串找到。
[“hello”, “hey”]应该返回false,因为字符串”hello”并不包含字符”y”。
[“Alien”, “line”]应该返回true,因为”line”中所有字符都可以在”Alien”找到。
代码实现:
function mutation(arr) {
var str1 = arr[0].toLowerCase();
var str2 = arr[1].toLowerCase();
for(var i=0; i<str2.length; i++){
if(str1.indexOf(str2[i]) < 0){
return false;
}
}
return true;
}
mutation(["hello", "hey"]);
分析: 根据题目描述,只需要检查一下数组里第二个元素是不是都包含在数组第一个元素里即可,在这之前需要先把两个字符串统一一下,都转成小写形式(str.toLowerCase())。
String.indexOf() 方法返回调用 String 对象中第一次出现的指定值的索引,开始在 fromIndex进行搜索。如果未找到该值,则返回-1。
该方法包含两个参数,第一个searchValue是必须的,它表示被查找的值;第二个是可选参数fromIndex,表示调用该方法的字符串中开始查找的位置,默认为0。
对应还有一个str.lastIndexOf()方法,它从该字符串的后面向前查找。