【问题标题】:Returning word when looking for longest word instead of number of characters查找最长单词而不是字符数时返回单词
【发布时间】:2014-11-03 19:54:02
【问题描述】:

所以,我正在研究一个在字符串中查找最长单词的函数。但是我找不到如何 console.log 实际单词而不是它所具有的字符数的值。这是我的功能:

function longestWord(text) {
var textSplit = text.split(" ");
for (var i = 0; i < textSplit.length; i++) {
    var wordLength = textSplit[i].length;
};
console.log(Math.max(wordLength));
}
longestWord("I dislike taking recent microwaves");

【问题讨论】:

  • 所以保持对最大单词的引用。
  • words.sort(function(a,b){return a.length-b.length}).pop()

标签: javascript string for-loop


【解决方案1】:

当你检测到当前的比你最长的长时,保存它。

function longestWord(text) {
        var longestWordLength = 0;
        var longestWordString = '';

        var textSplit = text.split(" ");

        for (var i = 0; i < textSplit.length; i++) {
            var word = textSplit[i];
            var wordLength = word.length 
            if (longestWordLength < wordLength) {
                longestWordLength = wordLength;
                longestWordString = word;
            }
        };
        console.log(longestWordString);
    }
    longestWord("I dislike taking recent microwaves");

这里是JS Fiddle

【讨论】:

  • 是的,但遵循@Fyxerz 的方法并希望使其可读。
【解决方案2】:

你可以使用减速器:

var longestWord = function(str) {
  return str.split(' ').reduce(function(acc, x) {
    return x.length > acc.length ? x : acc
  },'')
}

longestWord("I dislike taking recent microwaves"); //=> microwaves

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2020-03-04
    • 1970-01-01
    • 1970-01-01
    • 2018-11-25
    • 1970-01-01
    • 2019-02-13
    • 1970-01-01
    相关资源
    最近更新 更多