Javascript 在字符串数组中查找最大的字符串
我试图解决以下问题。我对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
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);