Javascript 在字符串数组中查找最大的字符串

Javascript 在字符串数组中查找最大的字符串,javascript,arrays,string,Javascript,Arrays,String,我试图解决以下问题。我对javascript没有太多的实际知识 我需要从数组中找到给定的最大字符串。如果数组中的多个字符串具有相同的长度,则返回最长长度中的第一个字符串 let test13 = ['a', 'aa', 'aaa']; let test14 = ['asdf', 'qwer', 'zxcv']; let test15 = ['asdfasdf fdasdf a sd f', ' asdfsdf', 'asdfasdfds', 'asdfsdf', 'asdfsdaf']; let

我试图解决以下问题。我对javascript没有太多的实际知识

我需要从数组中找到给定的最大字符串。如果数组中的多个字符串具有相同的长度,则返回最长长度中的第一个字符串

let test13 = ['a', 'aa', 'aaa'];
let test14 = ['asdf', 'qwer', 'zxcv'];
let test15 = ['asdfasdf fdasdf a sd f', ' asdfsdf', 'asdfasdfds', 'asdfsdf', 'asdfsdaf'];
let test16 = ['ddd','dddddddd','dddd','ddddd','ddd','dd','d','d','dddddddddddd'];
您可以使用
.reduce()
方法,通过检查数组中每个字符串的
长度
,并返回包含多个字符的字符串,来查找所需的字符串:

让test1=['a','aa','aaa'];
让test2=['asdf','qwer','zxcv'];
让test3=['asdfasdf fdasdf a sd f'、'asdfsf'、'asdfasdfds'、'asdfsfdfdf'、'asdfsdf'];
设test4=['ddd','dddddd','dddddd','ddddd','ddd','ddd','dd','d','d','dddddddd'];
让reducer=(arr)=>arr.reduce((r,c)=>r.length>=c.length?r:c);
console.log(reducer(test1));
console.log(reducer(test2));
console.log(reducer(test3));
console.log(reducer(test4))
让test13=['a','aa','aaa'];
设test14=['asdf','qwer','zxcv'];
设test15=['asdfasdf fdasdf a sd f'、'asdfsf'、'asdfasdfds'、'asdfsfdfdf'、'asdfsdf']、'asdfsdf';
设test16=['ddd','dddddd','dddddd','ddddd','ddd','ddd','dd','d','d','dddddddd'];
函数findLongest(数组){
变量长度=0;
var=”;
对于(变量i=0;i长度){
长度=数组[i]。长度;
最长=数组[i];
}
}
返回“字符串:”+最长+“长度:”+长度;
}
log(findLongest(test13));
log(findLongest(test14));
log(findLongest(test15));
log(findLongest(test16))
/**
*获取字符串数组中最大的字符串
*如果输入不是数组或数组为空,则返回null
*
*@param数组字符串[]
*@returns null | object{max:string,value:string}
*/
设最大=(数组)=>{
//检查数组是否真的是数组
如果(!Array.isArray(数组)){
返回null;
}
//检查数组是否为空
if(array.length<1){
返回null;
}
设len=0;
设str='';
for(数组中的let值){
如果(value.length>len){
len=len;
str=值;
}
}
返回{max:len,value:str};
};
var test14=['asdf','qwere','zxcv3eeler'];
函数getLargeString(arr){
var largeString=“”
arr.forEach(函数(元素){
如果(最大值==“”)
最大=元素;
if(最大长度<元素长度)
最大=元素;
});
控制台日志(最大值);
}
获取最大值(test14);

移动到=>

首先尝试for循环并发布它怎么样?听起来你的思路是对的:)。你可以使用它。到目前为止你尝试了什么?对于空数组,你应该做:
let reducer=(arr)=>arr.reduce((r,c)=>r.length>=c.length?r:c',)然后它将为空数组返回空字符串。
/**
 *  get the largest string of a string array
 *  returns null if input is not array or array is empty
 *
 *  @param array string[]
 *  @returns null|object {max: string, value: string}
 */
let largest = (array) => {
  // check if array is realy an array
  if(!Array.isArray(array)){
    return null;
  }
  // check if array is empty
  if(array.length < 1) {
    return null;
  }
  let len = 0;
  let str = '';
  for(let value in array){
    if(value.length > len) {
      len = len;
      str = value;
    }
  }

  return {max: len, value: str};
};
var test14 = ['asdf', 'qwere', 'zxcv3eerer'];
function getLargeString(arr) {
var largeString = ""
arr.forEach(function (element) {
    if (largeString == "")
        largeString = element;
    if (largeString.length < element.length)
        largeString = element;

});
console.log(largeString);
}

getLargeString(test14);