[英]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"));
使用reduce
, initialValue
是可选的,如果未提供,则您的第一个元素将用作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.