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

如何在JavaScript中创建二维数组的空副本?

如何创建与原二维数组结构一致的空副本

你需要生成一个和原二维数组子数组长度完全匹配,但所有元素为空的新数组,以下是几种简单可行的实现方式:

方法一:使用map快速生成

利用数组的map方法遍历原数组的每一行,结合Array.from或new Array创建对应长度的空数组:

const originalArray = [
    [1, 2, 3, 4, 5, 6, 7], 
    [8, 9, 10, 11, 12, 13, 14], 
    [15, 16, 17, 18, 19, 20, 21], 
    [22, 23, 24, 25, 26, 27, 28], 
    [29, 30, 31]
];

// 方式1:Array.from 生成对应长度的空数组
const copiedArray1 = originalArray.map(row => Array.from({ length: row.length }));

// 方式2:new Array 直接指定长度
const copiedArray2 = originalArray.map(row => new Array(row.length));

这两种方式都会生成结构完全符合预期的数组,每个子数组的长度和原数组对应行一致,元素默认是undefined,在控制台输出时会显示为空槽,和你给出的示例效果一致。

方法二:嵌套循环实现(修正版)

如果你想用嵌套循环,不需要遍历子数组的元素,只需要根据原数组每行的长度创建空数组即可:

const copiedArray3 = [];
for (let i = 0; i < originalArray.length; i++) {
    const newRow = [];
    // 直接设置子数组长度,快速生成对应空槽
    newRow.length = originalArray[i].length;
    copiedArray3.push(newRow);
}

之前嵌套循环失败可能是因为错误地尝试复制原数组的元素,或者没有正确设置子数组的长度,以上写法可以避免这个问题。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.24 19:25:05