判断一个句子中最长的单词,返回该单词长度

代码

function str(s){
        var maxLen = null;
        if (!s.replace(/\s/g)){
            return s.length;
        }else{
            var arr = s.split(" "); 
            for(var i = 1; i < arr.length; i++ ){

                if(arr[i].length > arr[i-1].length){
                    if(maxLen < arr[i].length ){
                        maxLen = arr[i].length; 
                    }           
                }else{
                    if(maxLen < arr[i -1].length ){
                        maxLen = arr[i - 1].length; 
                    }
                }
            }
            return maxLen;
        }
    }

解释

需求如题,整条思路分为两步。 判断该句子中单词的个数是不是等于1。通过正则中的\s,进行全局匹配空格, if (!s.replace(/\s/g)),如果没有空格,直接返回s.length

  • 如果大于1

1.将字符串转化为数组,var arr = s.split(" ");
2.循环数组arr
3.我们已经排除传入一个单词的可能性,所以

for(var i = 1; i < arr.length; i++ ){
// 我们这里从数组的第二项开始
}

接下来判断 arr的第二项和第一项length的长度;

if(arr[i].length > arr[i-1].length){ 
    if(maxLen < arr[i].length ){
        maxLen = arr[i].length; 
    }           
}               

将全局变量maxLen,进行赋值。每次对比前后项数组,检查maxLen是不是最大。else中的代码则同理。最后将maxLen返回,return

这段代码还很繁琐的,以后想办法更新几种办法。
最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容