2016-11-27 1 views
-3

다음 코드는 어떤 아이디어도 정렬하지 않습니까?자바 스크립트 배열이 정렬되지 않습니다

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

배열 연결은 자바 스크립트에서 그런 식으로 작동하지 않습니다. 당신이 원하는 :

lengths.push(splitString[i].length) 

예를 들어, "정렬 할 것이다"구체적으로하시기 바랍니다 질문을 진단하지 않습니다.

오류에 대해 명시해야합니다 (예 : lengths.sort에 대한 콘솔 경고는 기능이 아닙니다).

이 오류 메시지가 물어 이어질 것 :

  • 아, 왜 그렇지?
  • sort을 호출하려고하면 lengths이 무엇입니까?
  • 아, 배열이 아닙니다. 왜 안되는지 궁금하니?

JavaScript.

오류를 감지하고 진단하는 것은 중요한 기술입니다. 이런 사소한 문제는 콘솔을 가장 친한 친구로 생각할 수 있습니다. 왜냐하면 한 번에 하나씩 문제를 해결할 수 있기 때문입니다.

관련 문제