2016-10-29 90 views
0
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; 


    } 

您好! 我需要創建一個函數,其中輸入是一個字符串(單詞)和一個字符串(單詞)的數組。 我的目標是返回一個新的數組,它將包含「單詞」字符串中所有單詞的列表,這些單詞是「單詞」字符串的縮寫。如何分割字符串數組中的每個字符串元素?

我寫的代碼,但它不承認5日線的words[i].split("")功能,說這是一個未知的屬性未定義 ...
任何幫助嗎?

回答

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; 


    } 
0

下面是使用Array#filter方法更簡單的解決方案:

function anagrams(word, words) { 
    return words.filter(el => 
    word.split('').sort().toString() === el.split('').sort().toString() 
); 
}