繁体   English   中英

Javascript reduce()查找字符串中最短的单词

[英]Javascript reduce() to find the shortest word in a string

我有一个函数,可以找到字符串中最长的单词。

function findLongestWord(str) {
  var longest = str.split(' ').reduce((longestWord, currentWord) =>{
    return currentWord.length > longestWord.length ? currentWord : longestWord;
  }, "");
  return longest;
}
console.log(findLongestWord("The quick brown fox jumped over the lazy dog"));

我很难转换成最短的单词。 为什么我不能只将currentWord.length > longestWord.length更改为currentWord.length < longestWord.length

您需要为reduce函数提供一个初始值,否则空白字符串是最短的单词:

 function findShortestWord(str) { var words = str.split(' '); var shortest = words.reduce((shortestWord, currentWord) => { return currentWord.length < shortestWord.length ? currentWord : shortestWord; }, words[0]); return shortest; } console.log(findShortestWord("The quick brown fox jumped over the lazy dog")); 

使用reduceinitialValue是可选的,如果未提供,则您的第一个元素将用作initialValue 因此,就您而言,只需删除""

 function findLongestWord(str) { var longest = (typeof str == 'string'? str : '') .split(' ').reduce((longestWord, currentWord) =>{ return currentWord.length < longestWord.length ? currentWord : longestWord; }); return longest; } console.log(findLongestWord("The quick brown fox jumped over the lazy dog")); // The 

我用这种方式编码

 const findLongestWord = str => { return typeof str === 'string' ? str.split(' ').reduce((sw, lw) => lw.length < sw.length ? lw :sw) : ''; } console.log(findLongestWord('The quick brown fox jumps over the lazy dog.')); //'The' 

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM