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

如何从整数数组获取最小/最大值?JavaScript函数实现报错求助

问题分析与解决方案

你的代码存在的问题

  • 函数名不符:任务要求函数名为minorMajor,你写成了menorMayor
  • 忽略传入参数:函数内硬写了固定数组[3,7,4,2,8],完全没用到输入的num参数
  • 循环逻辑错误:num.legth是拼写错误,应为num.length;循环条件i <= num.length会导致数组越界,正确应为i < num.length
  • 逻辑混乱:循环内仅做了index = num,未对数组元素进行最值比较;if语句写在函数外部,变量i无定义,且返回的是字符串而非要求的数组
  • 变量未声明:index等变量未用let/const声明,会造成全局变量污染

正确实现方法

方法1:手动遍历数组(基础版)

手动遍历数组,实时更新当前最小值和最大值,最后返回目标数组:

function minorMajor(numbers) {
  // 处理空数组边界情况
  if (numbers.length === 0) return [];
  
  // 初始化最值为数组第一个元素
  let min = numbers[0];
  let max = numbers[0];
  
  // 从第二个元素开始遍历比较
  for (let i = 1; i < numbers.length; i++) {
    if (numbers[i] < min) {
      min = numbers[i];
    }
    if (numbers[i] > max) {
      max = numbers[i];
    }
  }
  
  return [min, max];
}

// 测试示例
console.log(minorMajor([4, 6, 1, 7, 15])); // 输出 [1, 15]

方法2:使用内置API(简洁版)

利用JS内置的Math.min和Math.max结合扩展运算符,快速获取最值:

function minorMajor(numbers) {
  if (numbers.length === 0) return [];
  return [Math.min(...numbers), Math.max(...numbers)];
}

// 测试示例
console.log(minorMajor([4, 6, 1, 7, 15])); // 输出 [1, 15]

注意事项

  • 若需要兼容空数组场景,务必先判断numbers.length === 0,避免运行报错
  • 尽量保持函数名、参数名与任务描述一致,提升代码可读性

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.01 15:31:49