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

求数组相邻元素最大乘积的代码运行报错原因排查

相邻元素最大乘积代码问题排查

现存问题

  • 变量作用域错误:prod在for循环内部通过let声明,属于块级作用域变量,循环外的return语句无法访问,运行时会抛出prod is not defined的引用错误。
  • 循环边界越界:循环条件设置为i < inputArray.length,当i等于数组最后一位索引时,inputArray[i+1]不存在,计算结果会变为NaN,正确循环边界应为i < inputArray.length - 1。
  • 最大值逻辑错误:每次循环仅计算当前相邻对的乘积赋值给prod,未和历史最大值对比,最终只能返回最后一组相邻元素的乘积,不是全局最大值。

修正后代码

function adjacentElementsProduct(inputArray) {
    // 初始化最大值为第一对相邻元素的乘积
    let maxProd = inputArray[0] * inputArray[1];
    for(let i = 1; i < inputArray.length - 1; i++){
        // 计算当前相邻对乘积,和历史最大值对比更新
        let currentProd = inputArray[i] * inputArray[i+1];
        maxProd = Math.max(maxProd, currentProd);
    }
    return maxProd;
}

验证示例

输入inputArray = [3, 6, -2, -5, 7, 3]时,函数返回值为21,符合题目要求。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.10.01 20:54:04