js 获取字符串中最长单词长度的 3 种方法

1,516 阅读1分钟
原文链接: www.jianshu.com

方法1: 先按空格把字符串转换成数组,然后用for循环获取每一个数组元素的长度,再比较大小:

function findLongestWord(str) {
  var length = 0;

    var strArray = str.split(' ');

    for(var i = 0;i < strArray.length;i++)
    {
        length = strArray[i].length > length ? strArray[i].length : length;
    }

    return length;
}

findLongestWord("Hello world My  heart will go on the day after tomorrow");

方法2:把字符串转化成数组后,用sort()函数给数组排序:

function findLongestWord1(str) {
    var strArray = str.split(' ');
    strArray.sort(function (a,b) {
        return b.length - a.length;
    });

    return strArray[0].length;
}

方法3:转化成数组后,用map()函数生成一个保存每个单词长度的新数组,然后用reduce()函数取到最大值:

function findLongestWord2(str) {
    var strArray = str.split(' ');
    var lengthArray = strArray.map(function(val){
        return val.length
    });

    return lengthArray.reduce(function (p,c) {
        return Math.max(p, c);
    });
}

本文对你有帮助?欢迎扫码加入前端学习小组微信群: