JavaScript算法练习:找出字符串中最长的单词并输出其长度

特别声明:本站已开启付费阅读,年费会员价 ¥365.00元。如果您喜欢小站的内容,可以点击开通会员进行全站阅读。如果您对付费阅读有任何建议或想法,欢迎发送邮件至: airenliao@gmail.com!(^_^)

今天的练习是找出字符串(可能是一句话)中最长的单词并且将其长度输出。这个算法其实就是让我们看看字符串中有多少个词,每个词有多少个字母,然后对这些词进行比较,找出字母数最多的那个词,并且返回这个最长字符数单词的长度。

实现上面描述的功能,同样先创建一个函数,比如findLongestWord(),并且给这个函数传入一个arr参数,这个arr是一个包含多个词的字符串。然后在函数通过以下几步来实现所需的功能:

  • 先把字符串arr转为数组
  • 将数组中的每个元素长度转换成一个新的数组
  • 将这个数组按由小到大排序
  • 取此数组中最后的数值,也就是最长的字符串
  • 将这个长度值返回

JavaScript方法

在写findLongestWord(str)函数实现文章开头所述的功能,根据上面的实现思路,将会大致用到下面几个有关于JavaScript点:

其中String.prototype.split()主要是用来将字符串str转换成数组arr。比如:

"May the force be with you".split(" ");
// ["May", "the", "force", "be", "with", "you"]

这里需要注意一点,在使用split()方法时,""中间得要有一个空格(" "),不然将会转成这样的一个数组:

"May the force be with you".split("");
// ["M", "a", "y", " ", "t", "h", "e", " ", "f", "o", "r", "c", "e", " ", "b", "e", " ", "w", "i", "t", "h", " ", "y", "o", "u"]

因为我们要做的是找出字符串str="May the force be with you"中最长的词,并且将其length输出来。那么我们需要的是将字符按单的而不是单独的字母来划分。因此要特别代码中split()的使用。

而其它几个都是具体写函数功能需要用的,比如for是用来做遍历的,而sort()方法用来对数组中的元素进行排序,而且这里都将是按从小到大的升序列来排列。

reduce()方法将数组中的每个值(从左到右)开始合并,最终返回一个值。而在这个方法中,将会调一个callback函数,这个函数的功能就是让我们找出数组中最大的一个值。有关于sort()reduce()更多的介绍,可以点击这里阅读

剩余80%内容付费后可查看
* 请输入阅读码(忘记阅读码?

如需转载,烦请注明出处:https://www.w3cplus.com/javascript/find-the-longest-word-solution.html

如果文章中有不对之处,烦请各位大神拍正。如果你觉得这篇文章对你有所帮助,打个赏,让我有更大的动力去创作。(^_^)。看完了?还不过瘾?点击向作者提问!

赏杯咖啡,鼓励他创作更多优质内容!
返回顶部