javascript - Javascript:使用 slice() 创建数组的副本;
问题描述
我需要创建一个数组的副本,以便我可以对一个数组进行修改而不影响另一个数组。
例如:
var a = [[1],[2],[3]];
var b = a.slice(0);
b[1].push(100);
b // [[1],[2, 100],[3]];
a // expect: [[1],[2],[3]]; , actual: [[1],[2, 100],[3]];
我也试过:
var b = new Array(a);
但这会将所有 [1],[2],[3] 放在新数组中的索引 0 上。
我在这里想念什么?
多谢你们!
解决方案
you also have to copy the inner arrays:
var b = a.map(sub => sub.slice());
推荐阅读
- c# - 如何在电子邮件表单中使用 if else 语句?
- javascript - 添加/删除类以获取要显示的菜单
- javascript - 使用 javascript 或 angular 1 进行多个文本框验证
- ios - 没有使用 [FIRRemoteConfig remoteConfig] 从服务器获取数据
- c++ - 带有 TT 的 AlphaBeta (MTD-f)
- linq - 如何在 Linq-2-Entity 中联合不同类型
- php - Laravel 在线包含系统日志的项目名称
- c# - 如何快速复制 UIElement?
- java - 当我的应用程序被强制手动停止时,我需要创建一个日志
- c# - 我的“{0}”占位符不起作用。有什么办法可以修复它们