function anagrams(word, words) {
var returnArray = [];
var wordToTest= word.split("").sort();
for(i=0; i<=words.length; i++){
var wordssToTest = words[i].split("");
wordssToTest.sort();
if(wordssToTest==wordToTest){
returnArray.push(wordssToTest);
}
}
return returnArray;
}
您好! 我需要创建一个函数,其中输入是字符串(单词)和字符串数组(单词)。 我的目标是返回一个新数组,其中包含“&#39;单词”中所有单词的列表。字符串是&#39;字的字谜字符串。
我编写了代码,但它没有识别第5行的words[i].split("")
函数,说它是未定义的未知属性 ..
有什么帮助吗?
答案 0 :(得分:1)
您在for循环中使用了<=
而不是<
。正确的代码:
function anagrams(word, words) {
var returnArray = [];
var wordToTest= word.split("").sort();
for(i=0; i<words.length; i++){
var wordssToTest = words[i].split("");
wordssToTest.sort();
if(wordssToTest==wordToTest){
returnArray.push(wordssToTest);
}
}
return returnArray;
}
答案 1 :(得分:0)
使用Array#filter方法,这是一个更简单的解决方案:
function anagrams(word, words) {
return words.filter(el =>
word.split('').sort().toString() === el.split('').sort().toString()
);
}