javascript - Math.max 引用的最长单词

标签 javascript arrays

我见过很多解决方案,但不是我尝试解决这个问题的方法。 - 我试图在空格处断开字符串并将所有单词存储在变量单词中。 我使用 for 循环来计算每个单词中的字母表,并将每个单词一个一个地存储在 alphabetsInWord 中,并将每个单词的长度插入数组。循环完成后,每个单词的长度存储在称为数组的数组中。由于数组中的值是数字,所以我想在数组上应用 Math.max 来查找 logestWord 的值,但它不返回一个。我有 console.log statments 在那里检查但不是必需的。有人可以帮我如何让它工作吗?我认为看看这种方式是否也有效会很有趣。

    function findLongestWord(str) {
      var word = str.split(" ");
      var array=[];
      console.log(word);
         for(i=0; i <= word.length; i++){
            var alphabetsInWord = word[i];
            array.push(alphabetsInWord.length);                 
            console.log(array);
           //console.log(Math.max(array));
         }
     var longestWord = Math.max(array);
     return longesWord;
     console.log(longestWord); 

   } 

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

最佳答案

使用 ES6 语法,您可以按如下方式进行:

var str = "The quick brown fox jumped over the lazy dog";

var wordLengths = str.split(" ").map(w => w.length);

const maxLength = Math.max(...wordLengths);

console.log(maxLength);

或者,您可以使用 native forEach()sort() 方法实现此目的:

var str = "The quick brown fox jumped over the lazy dog";
var words = str.split(" ");
var wordLengths = [];

words.forEach(function(word) {
  wordLengths.push(word.length);
});
wordLengths.sort(function(a, b) {
  return a - b;
});

const maxLength = wordLengths[wordLengths.length - 1];
console.log(maxLength);

使用资源:


关于javascript - Math.max 引用的最长单词,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/48363808/

相关文章:

javascript - 如何使用 JQuery 获取每个表的第一个 td 值?

javascript - 如何使用 .split 防止在引号逗号处拆分?

javascript - 如何循环遍历每个文本框并将所有其他文本框中的文本框值设置为禁用(如果已输入)

javascript - 根据语言动态设置路径/路径名

具有可变维度的 JavaScript 函数数组

javascript - 背景颜色没有改变

java - 无法解析方法 'setAdapter()'

javascript - 显示 map 并突出显示某些国家/地区

javascript - 未选中单选按钮时禁用复选框数组

python - 测量 numpy 2d 区域之间的边界重叠