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

二维数组元素复制异常:bikeBrands2始终返回undefined

多维数组复制后返回undefined的解决办法

你的代码核心问题是数组长度属性拼写错误:把length写成了lenght。

JavaScript中,访问对象不存在的属性会返回undefined,所以bikeBrands.lenght的值是undefined。循环条件i < undefined等价于i < NaN,结果为false,导致循环体根本没执行,bikeBrands2自然没有被赋值,最终输出空数组(若你看到undefined可能是调试时的误判,但本质是循环未执行)。

修正后的代码

const bikeBrands = [];
bikeBrands[0] = ['Susuki', 'Kawasaki'];
bikeBrands[1] = ['Honda', 'KTM'];

const bikeBrands2 = [];

for (var i = 0; i < bikeBrands.length; i++)
  bikeBrands2[i] = bikeBrands[i].slice();

console.log(bikeBrands2); // 输出:[ ['Susuki', 'Kawasaki'], ['Honda', 'KTM'] ]

更简洁的复制方式

除了for循环,你也可以用map方法实现浅拷贝,代码更简洁:

// 用slice复制子数组
const bikeBrands2 = bikeBrands.map(brandArr => brandArr.slice());

// 或者用扩展运算符
const bikeBrands2 = bikeBrands.map(brandArr => [...brandArr]);

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.24 23:27:20