思路:建立三个集合,遍历数组,将每一项转化为小写字母,遍历改项,记录首位字母所属集合,并用type标记,之后每一个字符若所属集合和首位字母不一致,则删除其所在words的元素,返回words
注意:要break的不要使用三目运算符,filter,map无法continue,最好使用for循环,switch(item)中的case之后无法进行方法调用返回
var findWords = function(words) {
let set1=new Set('qwertyuiop')
let set2=new Set('asdfghjkl')
let set3=new Set('zxcvbnm')
let type=0
for(let i=0;i<words.length;i++){
type=0
let lowerWords=words[i].toLowerCase()
for(let j=0;j<lowerWords.length;j++){
if(j===0){
if(set1.has(lowerWords[j])){
type=1
}else if(set2.has(lowerWords[j])){
type=2
}else if(set3.has(lowerWords[j])){
type=3
}
continue
}
if(type===1 && !set1.has(lowerWords[j])){
words.splice(i,1);
i--;
break
}
if(type===2 && !set2.has(lowerWords[j])){
words.splice(i,1);
i--;
break
}if(type===3 && !set3.has(lowerWords[j])){
words.splice(i,1);
i--;
break
}
}
}
return words
};