将字符串拆分为单词数组以查找最长

时间:2015-06-27 21:32:15

标签: javascript arrays string split

我正在处理任务,搜索任何给定字符串中最长的单词。我认为这样做的理想方法是将字符串拆分为由每个单词组成的数组,然后循环遍历该数组并比较每个长度以返回最长的字符串。我坚持只是将字符串分成一个单词数组。我所看到的问题在主题中回答相似,似乎对复杂的方法使用了很多这么简单的任务。我正在寻找初学者级别的帮助,因为这是我第一次将正则表达式合并到我的代码中。

function findLongestWord(str) {
     str = str.toLowerCase().split("/\w+");
     return str;
}

findLongestWord('The quick brown fox jumped over the lazy dog');

2 个答案:

答案 0 :(得分:1)

你的正则表达式结构很差。即使修复了.split(/\w+/),拆分单词也会创建一个数组,其结果与您正在寻找的相反。

您应该使用.match收集字词。

function findLongestWord(str) {
  var match = '';

  str.match(/\w+/gi).forEach(function (w) {
    if (w.length > match.length) {
      match = w;
    }
  });
  
  return match;
}

var a = findLongestWord('The quick brown fox jumped over the lazy dog');

console.log(a);

仍然有点天真,因为单词中间可以有连字符,前面,中间和结尾都有撇号。

答案 1 :(得分:1)

Ledger