2014-11-03 3 views
1

그래서 문자열에서 가장 긴 단어를 찾는 함수를 작성하고 있습니다. 그러나 나는 console.log 실제 단어가 아니라 문자의 숫자의 가치가 아닌 방법을 찾을 수 없습니다. 당신이 현재는 가장 긴 것보다는, 저장 이상을 감지 할 때마다문자 수 대신 가장 긴 단어를 찾을 때 단어 반환

var longestWord = function(str) { 
    return str.split(' ').reduce(function(acc, x) { 
    return x.length > acc.length ? x : acc 
    },'') 
} 

longestWord("I dislike taking recent microwaves"); //=> microwaves 
+0

그래서 가장 큰 단어에 대한 참조를 유지하십시오. – epascarello

+0

words.sort (function (a, b) {return a.length-b.length}) pop() – dandavis

답변

1

:

function longestWord(text) { 
var textSplit = text.split(" "); 
for (var i = 0; i < textSplit.length; i++) { 
    var wordLength = textSplit[i].length; 
}; 
console.log(Math.max(wordLength)); 
} 
longestWord("I dislike taking recent microwaves"); 
+0

이 작업을 수행하는 훨씬 더 짧은 방법 ... – Phil

+0

예, @ Fyxerz의 접근 방식을 따르고 싶었습니다. 읽을 수있게 만들어라. –

1

당신은 감속기를 사용할 수 있습니다 : 여기 내 기능입니다.

function longestWord(text) { 
     var longestWordLength = 0; 
     var longestWordString = ''; 

     var textSplit = text.split(" "); 

     for (var i = 0; i < textSplit.length; i++) { 
      var word = textSplit[i]; 
      var wordLength = word.length 
      if (longestWordLength < wordLength) { 
       longestWordLength = wordLength; 
       longestWordString = word; 
      } 
     }; 
     console.log(longestWordString); 
    } 
    longestWord("I dislike taking recent microwaves"); 

여기는 JS Fiddle입니다.

관련 문제