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

JavaScript遍历二维数组提取偶数结果异常是什么原因?

问题原因

  • 内外层循环重复声明了同名变量i,内层循环的i会覆盖外层的i值,外层循环逻辑完全失效。每次内层循环执行时都会重置i的值,内层循环中i=1时固定访问到a6[1][1]也就是值为4的元素,这就是你输出全是4的直接原因。
  • 访问二维数组元素时错误写为a6[i][i],二维数组的第二个维度索引应该使用内层循环的专属变量,你这里不管内外层都用i,只会取到每个子数组下标等于当前i的元素,其他元素根本没有被正常访问到。

修正后的代码

JS代码

function f6() {
    let out = '';
    let a6 = [[1, 2], [3, 4], [5, 6], [21, 34], [44, 56]];
    // 外层循环用i遍历外层数组
    for (let i = 0; i < a6.length; i++) {
        // 内层循环用j遍历每个子数组,不要和外层变量重名
        for (let j = 0; j < a6[i].length; j++) {
            // 访问元素用a6[i][j],i是外层索引,j是内层索引
            if (a6[i][j] % 2 == 0) {
                out += a6[i][j] + ' ';
            }
        }
    }
    console.log(out);
}

document.querySelector('button').onclick = f6;

HTML代码

<button>Push!</button>

修正后运行输出结果为:2 4 6 34 44 56 ,符合提取所有偶数的需求。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.09.29 03:36:04