查找字符串中最长的单词?

编程入门 行业动态 更新时间:2024-10-18 14:23:36
本文介绍了查找字符串中最长的单词?的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧! 问题描述

我正在尝试编写一个基本的 javascript 函数来查找字符串中最长的单词并记录它的长度.

I am trying to write a basic javascript function to find the longest word in a string and log it's length.

到目前为止我有:

function findLongestWord(str) { var words = []; var longest = []; words.push(str.split(" ")); for(var i = 0; i < words.length; i++){ if (words[i].length > longest[0].length){ longest.push(words[i]); } } return longest[0].length; } findLongestWord('The quick brown fox jumped over the lazy dog');

这对我来说很有意义,但它给了我一个错误.我尝试了 console.logging 每个步骤,但它在 for 循环周围失败了.

It makes perfect sense to me, yet it gives me an error. I tried console.logging each step and it fails around the for loop.

推荐答案

使用words.push(str.split(" "))时,数组words看起来像

[ ["The", "quick", "brown", "fox", "jumped", "over", "the", "lazy", "dog"] ]

另一个问题是,当您在for 中检查longest[0].length 的第一次迭代时,它是undefined.导致错误

Another problem is that when you check longest[0].length for the first iteration in the for, it is undefined. Which results in the error

未捕获的类型错误:无法读取未定义的属性长度"

Uncaught TypeError: Cannot read property 'length' of undefined

要解决这个问题,您可以使用 longest 作为 string 而不是 array.并在 for 中,将 length 大于当前 longest 字符串的字符串分配给它.

To solve this, you can use longest as string instead of array. And in the for, assign the string having the length greater than the current longest string to it.

在函数的最后,可以返回最长的字符串.

At the end of the function, you can return the longest string.

问题/建议:

  • 使用str.split(' ')直接赋值给words变量
  • 使用 longest 作为 string 变量而不是 array 和 initialize 它为空字符串,即 '',避免上述错误
  • 比较longest的长度和words数组中的字符串
  • 如果words数组中字符串的长度大于longest,则更新longest.
  • 使用s+将字符串拆分空格
  • Use str.split(' ') to directly assignment to words variable
  • Use longest as string variable instead of array and initialize it to empty string, i.e. '', to avoid the above error
  • Compare the length of the longest with the string in the words array
  • If the length of the string in words array is greater than the longest, update the longest.
  • Use s+ to split the string by spaces
  • function findLongestWord(str) { var words = str.split(/s+/); var longest = ''; for (var i = 0; i < words.length; i++) { if (words[i].length > longest.length) { longest = words[i]; } } return longest; } var longestWord = findLongestWord('The quick brown fox jumped over the lazy dog'); document.write('Longest Word: "' + longestWord + '"'); document.write('<br />Longest Word Length: ' + longestWord.length);

    更多推荐

    查找字符串中最长的单词?

    本文发布于:2023-11-30 09:31:40,感谢您对本站的认可!
    本文链接:https://www.elefans.com/category/jswz/34/1649507.html
    版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系,我们将在24小时内删除。
    本文标签:字符串   单词   最长

    发布评论

    评论列表 (有 0 条评论)
    草根站长

    >www.elefans.com

    编程频道|电子爱好者 - 技术资讯及电子产品介绍!