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

JavaScript:统计数组中大于60元素的最大连续个数及代码疑问

问题分析与解决方案

首先,你代码里的break语句必须删掉——它会让循环只执行第一次迭代就直接终止,根本没法遍历整个数组统计连续出现的次数,这是导致逻辑完全错误的核心原因。

除此之外,你的代码还有两个关键问题:

  1. 数组元素是字符串类型,直接和数字60比较存在隐患(比如字符串'100'和'60'比较时,会因为字符编码顺序得到'100' < '60'的错误结果),需要先转换为数字再判断。
  2. 当前逻辑是统计所有大于60的元素总数,而非连续出现的最大次数,需要额外变量分别追踪当前连续次数和历史最大次数。

修正后的代码

let arr = ['80', '70', '11', '88', '90', '61'];

function processInput(arr) {
  let maxCount = 0;
  let currentCount = 0;
  
  for (let i = 0; i < arr.length; i++) {
    const num = Number(arr[i]);
    if (num > 60) {
      currentCount++;
      // 更新最大连续次数
      if (currentCount > maxCount) {
        maxCount = currentCount;
      }
    } else {
      // 连续被打断,重置当前计数
      currentCount = 0;
    }
  }
  
  return maxCount;
}

console.log(processInput(arr)); // 输出3

逻辑说明

  • maxCount:始终记录遍历过程中遇到的最大连续符合条件的次数。
  • currentCount:记录当前正在连续的符合条件的元素个数,遇到不符合条件的元素时重置为0。
  • 每次遍历元素时,先转换为数字,判断是否大于60:
    • 符合条件则递增currentCount,并检查是否需要更新maxCount。
    • 不符合条件则重置currentCount,因为连续序列被打断。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.17 12:50:18