寻求最长的单词算法挑战
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);