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

如何将数组拆分为奇偶数组并组成矩阵?JavaScript代码报错求助

问题分析与解决

1. 报错原因

函数参数已经声明了array1,函数内部又用const重复声明同名变量,触发SyntaxError: Identifier 'array1' has already been declared错误。

2. 逻辑错误

  • 原代码判断的是索引的奇偶性(i%2===0),而非数组元素的奇偶性,无法正确筛选偶数和奇数。
  • 循环内部执行array1.push(odd)和array1.unshift(even)会持续修改原数组长度,导致循环异常,且最终结果不符合预期。

3. 修正后的代码

function evenAndOdd(array1) {
    const odd = [];
    const even = [];
    for (let i = 0; i < array1.length; i++) {
        // 判断元素本身的奇偶性
        if (array1[i] % 2 === 0) {
            even.push(array1[i]);
        } else {
            odd.push(array1[i]);
        }
    }
    // 返回由偶数数组、奇数数组组成的矩阵
    return [even, odd];
}

// 测试示例
console.log(evenAndOdd([1,2,3,4,5,6])); // 输出: [[2,4,6],[1,3,5]]

4. 代码说明

  • 移除函数内部重复声明的array1,直接使用传入的参数。
  • 将判断条件改为array1[i] % 2 === 0,正确筛选偶数元素,剩余元素存入奇数数组。
  • 循环结束后,将偶数数组和奇数数组组合成新矩阵返回,避免修改原数组。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.01 19:20:47