在Javascript中使用1个参数从数组返回最长值
有人问过类似的问题,但我没有找到一个对我的问题有帮助的问题……我想创建一个函数,该函数使用一个参数,返回数组中最长的字符串,如果2的长度相同,则返回字符串中的第一个。我确信我将需要一个for循环之类的,但是我什么也得不到,而且我的代码不好,但我发布以下内容供您考虑:在Javascript中使用1个参数从数组返回最长值,javascript,arrays,function,for-loop,parameters,Javascript,Arrays,Function,For Loop,Parameters,有人问过类似的问题,但我没有找到一个对我的问题有帮助的问题……我想创建一个函数,该函数使用一个参数,返回数组中最长的字符串,如果2的长度相同,则返回字符串中的第一个。我确信我将需要一个for循环之类的,但是我什么也得不到,而且我的代码不好,但我发布以下内容供您考虑: function longestString([strs]) { var strs = ["afrec" "aaa", "tummdor"]; var lgth = 0; var
function longestString([strs]) {
var strs = ["afrec" "aaa", "tummdor"];
var lgth = 0;
var longest;
for (var i=0; i < strs.length; i++) {
if strs[i].length > lgth) {
var lgth = strs[i].length;
longest = strs[i];
}
}
return longest;
}
函数最长字符串([strs]){
var strs=[“afrec”、“aaa”、“tummdor”];
var-lgth=0;
var最长;
对于(变量i=0;i长度){
var lgth=strs[i]。长度;
最长=strs[i];
}
}
返回时间最长;
}
您可以使用JavaScript数组reduce()
方法
reduce()
方法将数组缩减为单个值。此方法为数组的每个值执行提供的函数。函数的返回值存储在累加器中(结果/总数)
var-strs=['afrec','aaa','tummdor'];
var longest=strs.reduce(函数(a,b){
返回a.length>b.length?a:b
}, '');
log('Longest string is:'+Longest)
您可以使用.sort()
对数组进行排序,然后返回数组的第一个值。
let longestString=a=>a.sort((s1,s2)=>s2.length-s1.length)[0];
log(最长的字符串([“afrec”、“aaa”、“tummdor”、“summar”))代码>顺便说一句,除了一些语法错误外,您的代码应该可以正常工作:
function longestString(strs) {
var lgth = 0;
var longest;
for (var i=0; i < strs.length; i++) {
if (strs[i].length > lgth) {
lgth = strs[i].length;
longest = strs[i];
}
}
return longest;
}
console.log(longestString(["afrec", "aaa", "tummdssssssor", "adadadadadad"]));
函数最长字符串(strs){
var-lgth=0;
var最长;
对于(变量i=0;i长度){
lgth=strs[i]。长度;
最长=strs[i];
}
}
返回时间最长;
}
log(最长的字符串([“afrec”、“aaa”、“tummdssssor”、“adadaddad”));
code-only答案没有帮助。请尝试解释为什么解决方案最有效,以及问题背后的原因。很抱歉,我没有很快回复您以表示感谢,我只是登录以研究另一个问题,并找到了您的答案。