Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/462.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/arrays/13.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
在Javascript中使用1个参数从数组返回最长值_Javascript_Arrays_Function_For Loop_Parameters - Fatal编程技术网

在Javascript中使用1个参数从数组返回最长值

在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

有人问过类似的问题,但我没有找到一个对我的问题有帮助的问题……我想创建一个函数,该函数使用一个参数,返回数组中最长的字符串,如果2的长度相同,则返回字符串中的第一个。我确信我将需要一个for循环之类的,但是我什么也得不到,而且我的代码不好,但我发布以下内容供您考虑:

     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答案没有帮助。请尝试解释为什么解决方案最有效,以及问题背后的原因。很抱歉,我没有很快回复您以表示感谢,我只是登录以研究另一个问题,并找到了您的答案。