You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

JavaScript中实现单参数数组最长字符串返回函数

解决数组中最长字符串的问题

先帮你梳理下代码里的几个关键问题,这些小错误导致它没法正常运行:

  • 函数参数用了[strs]解构写法,这会让函数只取传入数组的第一个元素,而不是接收整个数组,应该直接用strs作为参数
  • 函数内部重新定义了strs变量,还写错了数组里的逗号("afrec" "aaa"这里缺个逗号),这完全覆盖了传入的参数,违背了“接受一个参数”的需求
  • if语句缺少开头的括号,属于语法错误
  • 循环里重复声明lgth变量,会导致变量作用域混乱

下面是修正后的代码,完全符合你的需求:

function longestString(strs) {
  // 处理空数组或非数组输入的情况,避免报错
  if (!strs || strs.length === 0) {
    return "";
  }
  
  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;
}

代码说明:

  • 函数接收一个数组参数strs,不再硬编码内部数组,这样可以灵活传入任何字符串数组
  • 增加了空输入的判断,防止传入空数组或非数组值时出现报错
  • 修复了if语句的语法错误,去掉了循环里重复的var声明
  • 遍历过程中,只有当前字符串长度大于记录的最大长度时才更新结果,这样能保证第一个出现的最长字符串被保留下来

你可以测试下这个函数:

console.log(longestString(["afrec", "aaa", "tummdor"])); // 输出 "tummdor"
console.log(longestString(["cat", "elephant", "dog", "giraffe"])); // 输出 "elephant"(第一个最长项)
console.log(longestString([])); // 输出 ""

内容的提问来源于stack exchange,提问作者Michael

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.05.28 07:08:36