Рубрики
Без рубрики

Три способа найти самое длинное слово в строке в JavaScript

Эта статья основана на бесплатном кодовом лагере основных сценариев алгоритма «Найти самое длинное слово в строке». В этом алгоритме мы хотим посмотреть на каждое отдельное слово и подсчитать, сколько букв в каждом. Затем сравните количество, чтобы определить, какое слово имеет самые символы и

Эта статья основана на Сценарии основных алгоритмов лагеря Free Code « Найти самое длинное слово в строке ».

В этом алгоритме Мы хотим посмотреть на каждое отдельное слово и подсчитать, сколько букв в каждом. Затем сравните количество, чтобы определить, какое слово имеет самые символы и вернуть длину самого длинного слова.

В этой статье я собираюсь объяснить три подхода. Сначала с контуром для STOR, второй с использованием метода SORT () и третьего с использованием метода edite ().

Алгоритм вызовы

Предоставил тестовые случаи

  • Findlongestword («Быстрая коричневая лиса прыгнула над ленивой собакой») должен вернуть номер
  • Findlongestword («Быстрая коричневая лиса прыгнула над ленивой собакой») должен вернуться 6.
  • Findlongestword («Пусть сила будет с вами») должен вернуться 5.
  • Findlongestword («Google Do Barrel Roll») должен вернуться 6.
  • Findlongestword («Какова средняя скорость воздушного пространства нехватки ненадействительной ласточки») должен вернуться 8.
  • Findlongestword («Что, если мы попробуем супер-долгое слово, такие как оториноларингология») должен вернуться 19.
function findLongestWord(str) {
  return str.length;
}
findLongestWord("The quick brown fox jumped over the lazy dog");

1. Найти самое длинное слово с петлей для цикла

Для этого решения мы будем использовать String.Prototype.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. Найдите самое длинное слово со своего рода ( ) Метод

Для этого решения мы будем использовать метод Array.prototypee.sort () для сортировки массива некоторыми критериями заказа, а затем вернуть длину первого элемента этого массива.

  • Сортировать () Метод сортирует элементы массива на месте и возвращает массив.

В нашем случае, Если мы просто сортируем массив

var sortArray = ["The", "quick", "brown", "fox", "jumped", "over", "the", "lazy", "dog"].sort();

У нас будет этот вывод:

var sortArray = ["The", "brown", "dog", "fox", "jumped", "lazy", "over", "quick", "the"];

В Unicode номера приходятся до заглавных букв, которые приходят перед строчными буквами.

Нам нужно сортировать элементы некоторыми критериями заказа,

[].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. Найдите самое длинное слово с уменьшением () Метод

Для этого решения мы будем использовать array.prototype.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");

Я надеюсь, что вы нашли это полезным. Это является частью моего «Как решить ALGORITH ALGORITHMMMM MSCH» «Как решить FCC Algorithms», о проблемах алгоритма лагеря Free Code, где я предлагаю несколько решений и объяснить пошаговый шаг, что происходит под капотом.

Три способа повторить строку в JavaScript в этой статье, я объясню, как решить «Повторить строку» «Повторить строку». Это связано с …

Два способа подтвердить окончание строки в JavaScript в этой статье, я объясню, как решить «подтвердить« подтвердить окончание ».

Три способа изменить строку в JavaScript Эта статья основана на Бесплатный кодовый лагерь основной алгоритм сценариев «обратная строка»

Три способа активизировать число в JavaScript Эта статья основана на Бесплатный код Camp Camp Basic Algorith Scripting “Factorialize ряд”

Два способа проверить палиндром в JavaScript Эта статья основана на бесплатном кодовом лагере основных алгоритма сценариев «Проверка на палиндромы».

Три способа к названию.

Три способа вы можете найти наибольшее количество в массиве, используя JavaScript в этой статье, я собираюсь объяснить, как решить бесплатный код Code Camp “Возвращение крупнейших номеров в массивах” Challenge. Этот…

Если у вас есть собственное решение или какие-либо предложения, поделитесь их ниже в комментариях.

Или вы можете следовать за мной на Средний , Twitter , Github и LinkedIn , сразу после нажатия зеленого сердца ниже 😉

# StaySured, # KeepOnhacking & # Masteithappen!

Ресурсы

Оригинал: “https://www.freecodecamp.org/news/three-ways-to-find-the-longest-word-in-a-string-in-javascript-a2fb04c9757c/”