2016-11-27 7 views
-3

次のコードはアイデアを並べ替えませんか?Javascript配列はソートされません

function findLongestWord(str) { 
    var splitString = str.split(" "); 
    var lengths = []; 
    for(var i= 0; i< splitString.length; i++){ 
    lengths += splitString[i].length; 
    } 
    lengths.sort(function(a,b){return b-a;}); 
    return lengths; 
} 
findLongestWord("The quick brown fox jumped over the lazy dog"); 
+2

'array + = integer'は、おそらくあなたが思っていることをしません。また、関数は、その名前が示すように、最長の単語ではなく、単語の長さの配列を返そうとします。 –

+1

'lengths.push(splitString [i] .length)' –

答えて

1

配列に追加するのではなく、長さをプッシュする必要があります。

function findLongestWord(str) { 
 
    var splitString = str.split(" "); 
 
    var lengths = []; 
 
    for (var i = 0; i < splitString.length; i++) { 
 
     lengths.push(splitString[i].length); 
 
     //  ^^^^^^     ^
 
    } 
 
    lengths.sort(function (a, b) { return b - a; }); 
 
    return lengths; 
 
} 
 
console.log(findLongestWord("The quick brown fox jumped over the lazy dog"));

0

配列の連結は、JavaScriptでそのように動作しません。あなたが欲しい:

lengths.push(splitString[i].length) 

例えば、「並べ替えではないだろう」、具体的に説明してください質問を診断ではありません。

エラーについては明示してください(例えば、lengths.sortについてのコンソール警告は機能ではありません)。

エラーメッセージが依頼するあなたを導くでしょう:

  • ああ、なぜそれがないのですか?
  • lengthsは、sortに電話するとどうなりますか?
  • ああ、配列ではありません。なぜ私は不思議ですか?

JavaScriptのため、

エラーに気づいて診断することは重要なスキルです。このような些細な問題では、一度にいくつかのことを試すことができるので、コンソールはあなたの親友です。

関連する問題