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

JS如何实现打印数组所有最长字符串 现有代码仅输出前两个如何修复

代码问题分析

  • 存储结果用了字符串类型,直接拼接符合条件的字符串,无法返回独立的最长字符串集合
  • 未提前统计数组的最大字符串长度,判断时以拼接后的字符串长度作为基准,基准值会随拼接操作持续变大,导致后续原本符合最大长度的字符串无法被匹配

实现逻辑

先遍历数组得到最长字符串的长度,再二次遍历筛选所有长度等于最大长度的字符串即可。

可运行修正代码

let printLongestStrings = (array) => {
  // 计算数组中字符串的最大长度
  const maxLength = Math.max(...array.map(str => str.length));
  // 筛选所有长度等于最大长度的字符串
  return array.filter(str => str.length === maxLength);
};

console.log(printLongestStrings(["time","ticking","bomb","countup"]));
// 输出:['ticking', 'countup']

基础循环兼容版本(不依赖ES6新特性)

let printLongestStrings = (array) => {
  let maxLength = 0;
  // 第一次遍历找最大长度
  for (let i = 0; i < array.length; i++) {
    if (array[i].length > maxLength) {
      maxLength = array[i].length;
    }
  }
  const result = [];
  // 第二次遍历收集符合条件的字符串
  for (let i = 0; i < array.length; i++) {
    if (array[i].length === maxLength) {
      result.push(array[i]);
    }
  }
  return result;
};

console.log(printLongestStrings(["time","ticking","bomb","countup"]));

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.10.03 09:54:05