寻求最长的单词算法挑战

2019-04-04  本文已影响0人  前端小白加一枚

要求是:返回提供的句子中最长的单词的长度

有三种实现方式
首先是使用for循环实现,代码如下:

function findLongestWord(str){
  let arr = new Array();
  arr = str.split(" ");//以空格分隔
  let maxLength =0;
  for(let i=0;i<arr.length;i++){
    if(arr[i].length >maxLength){
        maxLength = arr[i].length;
    }
  }
  return maxLength;
}
const str = "Let me introduce myself first";
findLongestWord(str);

第二种方式是:sort()
实现思路是:
先通过split()分割赋值给新数组 对新数组进行for循环;
遍历数组 将数组中的每个单词的length形成一个新的数值数组;
对数值数组进行从小到大的排序 ,获取此数组的最后一位 也就是最长的单词length。

function findLongestWord(str){
  let strArr = str.split(" ");
  let numArr = [];
  for(let i=0;i<strArr.length;i++){
    numArr[i] = strArr[i].length;
  }
  numArr = numArr.sort(function(a,b){
    return a-b;
  });
  const maxLength = numArr.pop();
  return maxLength;
}
const str = "Let me introduce myself first";
findLongestWord(str);

第三种实现方式:reduce()
实现思路:
通过split()分割;然后使用reduce()获取最长的length

function findLongestWord(str){
  let strArr = str.split(" ");
  let maxStr = strArr.reduce(function(longest,currentWord){
      return currentWord.length > longest.length? currentWord:longest;
  });
return maxStr.length;
}
const str = "Let me introduce myself first";
findLongestWord(str);
上一篇下一篇

猜你喜欢

热点阅读