자바스크립트에서 문자열 중 가장 긴 단어를 찾는 세 가지 방법(권장)

10398 단어 js문자열단어.
본고는 Free Code Camp 기본 알고리즘 스크립트를 바탕으로 문자열 중 가장 긴 단어를 찾습니다.
이 알고리즘에서, 우리는 단어 하나하나를 보고, 단어 하나하나에 몇 개의 자모가 있는지 계산해야 한다.그 다음에 계수를 비교하여 어떤 단어의 문자가 가장 많은지 확인하고 가장 긴 단어의 길이를 되돌려줍니다.
본문에서 나는 세 가지 방법을 해석할 것이다.우선 FOR 순환을 사용하고 다음은sort() 방법을 사용하며 세 번째는reduce() 방법을 사용합니다.
알고리즘 도전
  • 제공된 문장 중 가장 긴 단어의 길이를 되돌려줍니다
  • 당신의 대답은 숫자일 것입니다..
  • 제공되는 테스트 용례
  • findLongestWord("quick brown fox jumped over the lazy dog")는 숫자를 되돌려줍니다
  • findLongestWord("The quick brown fox jumped over the lazy dog")는 6을 반환합니다
  • findLongestWord("May the force be with you")는 5를 반환합니다
  • findLongestWord("Google do a barrel roll")는 6을 반환합니다
  • findLongestWord("What is the average airspeed velocity of an unladen swallow")는 8을 반환합니다
  • findLongestWord("What if we try a super-long word such as otorhinolaryngology")는 19를 반환합니다
  • 
    function findLongestWord(str) {
     return str.length;
    }
    findLongestWord("The quick brown fox jumped over the lazy dog");
    1. FOR 루프를 사용하여 가장 긴 단어 찾기
    이 솔루션의 경우 String을 사용합니다.prototype.split () 메서드
  • split () 방법은 분리열을 통해 서브열로 나누어 문자열 대상을 문자열 그룹으로 분할합니다
  • split () 방법의 괄호 사이에 공백을 추가해야 합니다
    
    var strSplit = “The quick brown fox jumped over the lazy dog”.split(‘ ‘);
    단어로 구성된 배열을 내보냅니다.
    
    var strSplit = [“The”, “quick”, “brown”, “fox”, “jumped”, “over”, “the”, “lazy”, “dog”];
    괄호에 공백을 추가하지 않으면 다음과 같은 출력을 얻을 수 있습니다.
    
    var strSplit = 
    [“T”, “h”, “e”, “ “, “q”, “u”, “i”, “c”, “k”, “ “, “b”, “r”, “o”, “w”, “n”, “ “, “f”, “o”, “x”, “ “, “j”, “u”, “m”, “p”, “e”, “d”, “ “, “o”, “v”, “e”, “r”, “ “, “t”, “h”, “e”, “ “, “l”, “a”, “z”, “y”, “ “, “d”, “o”, “g”];
    
    function findLongestWord(str) {
     // Step 1. Split the string into an array of strings
     var strSplit = str.split(' ');
     // var strSplit = "The quick brown fox jumped over the lazy dog".split(' ');
     // var strSplit = ["The", "quick", "brown", "fox", "jumped", "over", "the", "lazy", "dog"];
     
     // Step 2. Initiate a variable that will hold the length of the longest word
     var longestWord = 0;
    
     // Step 3. Create the FOR loop
     for(var i = 0; i < strSplit.length; i++){
     if(strSplit[i].length > longestWord){ // If strSplit[i].length is greater than the word it is compared with...
     longestWord = strSplit[i].length; // ...then longestWord takes this new value
      }
     }
     /* Here strSplit.length = 9
      For each iteration: i = ? i < strSplit.length? i++ if(strSplit[i].length > longestWord)? longestWord = strSplit[i].length
      1st iteration:  0    yes    1 if("The".length > 0)? => if(3 > 0)?  longestWord = 3
      2nd iteration:  1    yes    2 if("quick".length > 3)? => if(5 > 3)? longestWord = 5 
      3rd iteration:  2    yes    3 if("brown".length > 5)? => if(5 > 5)? longestWord = 5 
      4th iteration:  3    yes    4 if("fox".length > 5)? => if(3 > 5)?  longestWord = 5 
      5th iteration:  4    yes    5 if("jumped".length > 5)? => if(6 > 5)? longestWord = 6 
      6th iteration:  5    yes    6 if("over".length > 6)? => if(4 > 6)? longestWord = 6 
      7th iteration:  6    yes    7 if("the".length > 6)? => if(3 > 6)?  longestWord = 6
      8th iteration:  7    yes    8 if("lazy".length > 6)? => if(4 > 6)? longestWord = 6 
      9th iteration:  8    yes    9 if("dog".length > 6)? => if(3 > 6)?  longestWord = 6 
      10th iteration:  9    no    
      End of the FOR Loop*/
    
     //Step 4. Return the longest word
     return longestWord; // 6
    }
    
    findLongestWord("The quick brown fox jumped over the lazy dog");
    메모 없음:
    
    function findLongestWord(str) {
     var strSplit = str.split(' ');
     var longestWord = 0;
     for(var i = 0; i < strSplit.length; i++){
     if(strSplit[i].length > longestWord){
     longestWord = strSplit[i].length;
      }
     }
     return longestWord;
    }
    findLongestWord("The quick brown fox jumped over the lazy dog");
    2.sort() 방법으로 가장 긴 단어 찾기
    이 솔루션의 경우 Array를 사용합니다.prototype.sort () 방법은 어떤 정렬 기준에 따라 그룹을 정렬한 다음 이 그룹의 첫 번째 요소의 길이를 되돌려줍니다.
  • sort()의 방법으로 정렬된 진열의 대체 요소를 진행하고 수조로 되돌려줍니다
  • 우리로서, 만약 우리가 단지 수조에 대한 정렬일 뿐이라면,
    
    var sortArray = [“The”, “quick”, “brown”, “fox”, “jumped”, “over”, “the”, “lazy”, “dog”].sort();
    우리는 다음과 같은 출력을 얻을 것이다.
    
    var sortArray = [“The”, “brown”, “dog”, “fox”, “jumped”, “lazy”, “over”, “quick”, “the”];
    유니코드에서 숫자는 대문자 앞에 있고 소문자 앞에 있습니다.
    우리는 어떤 정렬 기준에 따라 원소를 정렬해야 한다
    
    [].sort(function(firstElement, secondElement) {  return secondElement.length ― firstElement.length; })
    두 번째 원소의 길이와 수조 중의 첫 번째 원소의 길이를 비교하다.
    
    function findLongestWord(str) {
     // Step 1. Split the string into an array of strings
     var strSplit = str.split(' ');
     // var strSplit = "The quick brown fox jumped over the lazy dog".split(' ');
     // var strSplit = ["The", "quick", "brown", "fox", "jumped", "over", "the", "lazy", "dog"];
     
     // Step 2. Sort the elements in the array
     var longestWord = strSplit.sort(function(a, b) { 
     return b.length - a.length;
     });
     /* Sorting process
     a   b   b.length  a.length  var longestWord
     "The"  "quick"   5   3   ["quick", "The"]
     "quick" "brown"   5   5   ["quick", "brown", "The"] 
     "brown" "fox"    3   5   ["quick", "brown", "The", "fox"]
     "fox"  "jumped"   6   3   ["jumped", quick", "brown", "The", "fox"]
     "jumped" "over"    4   6   ["jumped", quick", "brown", "over", "The", "fox"]
     "over"  "the"    3   4   ["jumped", quick", "brown", "over", "The", "fox", "the"]
     "the"  "lazy"    4   3   ["jumped", quick", "brown", "over", "lazy", "The", "fox", "the"]
     "lazy"  "dog"    3   4   ["jumped", quick", "brown", "over", "lazy", "The", "fox", "the", "dog"]
     */
     
     // Step 3. Return the length of the first element of the array
     return longestWord[0].length; // var longestWord = ["jumped", "quick", "brown", "over", "lazy", "The", "fox", "the", "dog"];
            // longestWord[0]="jumped" => jumped".length => 6
    }
    
    findLongestWord("The quick brown fox jumped over the lazy dog");
    메모 없음:
    
    function findLongestWord(str) {
     var longestWord = str.split(' ').sort(function(a, b) { return b.length - a.length; });
     return longestWord[0].length;
    }
    findLongestWord("The quick brown fox jumped over the lazy dog");
    3. reduce () 방법으로 가장 긴 단어 찾기
    이 솔루션의 경우 Array를 사용합니다.prototype.reduce().
  • reduce () 방법은 하나의 액체 저장기의 기능과 상기 진열의 모든 값(왼쪽에서 오른쪽)에 응용하여 그것을 하나의 값으로 낮춘다
  • reduce () 는 그룹에 존재하는 모든 요소에 대해 리셋 함수를 실행합니다.
    줄일 두 번째 매개 변수로 초기 값을 제공할 수 있습니다. 여기에 빈 문자열 ""을 추가합니다.
    
    [].reduce(function(previousValue, currentValue) {...}, “”);
    
    function findLongestWord(str) {
     // Step 1. Split the string into an array of strings
     var strSplit = str.split(' ');
     // var strSplit = "The quick brown fox jumped over the lazy dog".split(' ');
     // var strSplit = ["The", "quick", "brown", "fox", "jumped", "over", "the", "lazy", "dog"];
    
     // Step 2. Use the reduce method
     var longestWord = strSplit.reduce(function(longest, currentWord) {
     if(currentWord.length > longest.length)
      return currentWord;
     else
      return longest;
     }, "");
     
     /* Reduce process
     currentWord  longest  currentWord.length  longest.length if(currentWord.length > longest.length)? var longestWord
     "The"    ""     3      0        yes       "The"
     "quick"   "The"    5      3        yes       "quick"
     "brown"   "quick"    5      5        no       "quick"
     "fox"    "quick"    3      5        no       "quick"
     "jumped"   "quick"    6      5        yes       "jumped"
     "over"   "jumped"   4      6        no       "jumped"
     "the"    "jumped"   3      6        no       "jumped"
     "lazy"   "jumped"   4      6        no       "jumped"
     "dog"    "jumped"   3      6        no       "jumped"
     */
     
     // Step 3. Return the length of the longestWord
     return longestWord.length; // var longestWord = "jumped" 
            // longestWord.length => "jumped".length => 6
    }
    
    findLongestWord("The quick brown fox jumped over the lazy dog");
    메모 없음:
    
    function findLongestWord(str) {
     var longestWord = str.split(' ').reduce(function(longest, currentWord) {
     return currentWord.length > longest.length ? currentWord : longest;
     }, "");
     return longestWord.length;
    }
    findLongestWord("The quick brown fox jumped over the lazy dog");
    자바스크립트에서 문자열 중 가장 긴 단어를 찾는 세 가지 방법에 대한 이 글을 소개합니다. 더 많은 js에서 문자열의 가장 긴 단어를 찾는 내용은 우리의 이전 문장을 검색하거나 아래의 관련 문장을 계속 훑어보십시오. 앞으로 많은 응원 부탁드립니다!

    좋은 웹페이지 즐겨찾기