首页前端开发JavaScript在JavaScript中查找字符串中最长单词的三种方法(推荐)

在JavaScript中查找字符串中最长单词的三种方法(推荐)

时间2024-01-31 15:06:02发布访客分类JavaScript浏览1030
导读:收集整理的这篇文章主要介绍了在JavaScript中查找字符串中最长单词的三种方法(推荐 ,觉得挺不错的,现在分享给大家,也给大家做个参考。 本文基于Free Code Camp基本算法...
收集整理的这篇文章主要介绍了在JavaScript中查找字符串中最长单词的三种方法(推荐),觉得挺不错的,现在分享给大家,也给大家做个参考。

本文基于Free Code Camp基本算法脚本“查找字符串中最长的单词”。

在此算法中,我们要查看每个单词并计算每个单词中有多少个字母。然后,比较计数以确定哪个单词的字符最多,并返回最长单词的长度。

在本文中,我将解释三种方法。首先使用FOR循环,其次使用sort()方法,第三次使用reduce()方法。

算法挑战

  • 返回提供的句子中最长单词的长度。
  • 您的回复应该是一个数字。

提供的测试用例

  • findLongestWord(“The 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()的方法通过分离串分成子串分割字符串对象到@R_512_1189@。

我们将需要在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”];
    

在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.使用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");
    

到此这篇关于在JavaScript中查找字符串中最长单词的三种方法的文章就介绍到这了,更多相关js查找字符串最长单词内容请搜索以前的文章或继续浏览下面的相关文章希望大家以后多多支持!

您可能感兴趣的文章:
  • 28个JavaScript常用字符串方法以及使用技巧总结
  • JavaScript中常用的几种字符串方法汇总(新手必看)
  • Java将Date日期类型字段转换成json字符串的方法
  • JavaScript字符串转数字的简单实现方法
  • JavaScript字符串处理常见操作方法小结
  • Javascript的字符串方法详解

声明:本文内容由网友自发贡献,本站不承担相应法律责任。对本内容有异议或投诉,请联系2913721942#qq.com核实处理,我们将尽快回复您,谢谢合作!

上一篇: 从源码角度来回答keep-alive组件...下一篇:vue-resource 拦截器interceptor...猜你在找的JavaScript相关文章 html font标签如何设置字体大小?html font标签属性用法介绍2022-05-16vue3+TypeScript+vue-router的使用方法2022-04-16vue3获取当前路由地址2022-04-16如何利用React实现图片识别App2022-04-16JavaScript展开运算符和剩余运算符的区别详解2022-04-16微信小程序中使用vant框架的具体步骤2022-04-16Vue elementUI表单嵌套表格并对每行进行校验详解2022-04-16如何利用Typescript封装本地存储2022-04-16微信小程序中wxs文件的一些妙用分享2022-04-16JavaScript的Set数据结构详解2022-04-16 其他相关热搜词更多phpjavapython程序员loadpost-format-gallery

若转载请注明出处: 在JavaScript中查找字符串中最长单词的三种方法(推荐)
本文地址: https://pptw.com/jishu/594118.html
c语言实现输出5个数就自动换行 nodejs中的异步编程知识点详解

游客 回复需填写必要信息