gpt4 book ai didi

javascript - 找到字符串中最长的单词?

转载 作者:行者123 更新时间:2023-11-28 13:21:42 24 4
gpt4 key购买 nike

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

到目前为止我已经:

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 循环中失败。

最佳答案

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

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

另一个问题是,当您检查 for 中第一次迭代的 longest[0].length 时,它是未定义。这会导致错误

Uncaught TypeError: Cannot read property 'length' of undefined

要解决此问题,您可以使用longest作为string而不是array。并且在for中,将length大于当前最长字符串的字符串赋给它。

在函数末尾,您可以返回最长字符串。

问题/建议:

  1. 使用str.split(' ')直接赋值给words变量
  2. 使用longest作为string变量而不是array并将其初始化为空字符串,即 '',避免上述错误
  3. 最长的长度与words数组中的字符串进行比较
  4. 如果words数组中的字符串长度大于最长,则更新最长
  5. 使用\s+按空格分割字符串

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);

关于javascript - 找到字符串中最长的单词?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/32430528/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com