首页 > 解决方案 > 查找字符串中长度最大的所有单词

问题描述

我想从字符串中找到所有长度最长的单词。

目前,结果只是长度最大的第一个:'jumped1',而我想要它们全部:['jumped1', 'jumped2']

我该如何调整以下内容?

function test(str) {

  var newStr = str.split(' ');
  var nu = 0;
  var word =null;

  for(var i=0; i < newStr.length; i++){
     if(newStr[i].length > nu){
       nu = newStr[i].length; // length
       word = newStr[i]; // word

     }    
  }
  return word;
}

console.log(test("The quick brown fox jumped1 over the lazy dog - jumped2"));

标签: javascriptecmascript-6

解决方案


当您找到最长的单词时,不要将其分配给变量,而是将其word推送到最长单词的数组中。但是,当找到新的最长单词时,您必须处理数组的空白。

function test(str) {
  var split_string = str.split(' ');
  var longest_length = 0;
  var words = [];
  for(let string of split_string){
     if(string.length > longest_length){
       words = [string];
       longest_length = string.length;
     } else if (string.length == longest_length){
       words.push(string);
     }
  }
  return words;
}

console.log(test("The quick brown fox jumped1 over the lazy dog - jumped2"));


推荐阅读