javascript - 克隆一个 4D 多维数组
问题描述
我知道这个问题之前已经被问过,但所有的答案都假设数组是一个二维数组并且只有一层深度。
我有一个 4D 数组,在这里尝试了一些解决方案,但没有得到结果。这是我的数组:
我从这个问题中尝试了这个答案,但这只会深入一层。如何使它与 4D 数组一起使用?
var newArray = [];
for (var i = 0; i < currentArray.length; i++)
newArray[i] = currentArray[i].slice();
解决方案
您可以使用一个简单的递归函数,在递归处理其值后用副本替换数组:
function deepCopy(value) {
if (Array.isArray(value)) {
return value.map(deepCopy);
}
return value;
}
const data = [[[0]]];
const copy = deepCopy(data);
data[0][0][0] = 123;
console.log(data);
console.log(copy);
实际上,查看该问题的底部答案,已经存在(更复杂的)深层复制功能,例如这个。当然,如果您想要一个非常简单的 only-deep-copies-arrays 版本,您仍然可以使用我的。
推荐阅读
- javascript - Javascript:使用香草 javascript 隐藏和显示文本
- python - 从“挂起”蓝牙python连接中检测和恢复
- java - 添加新线程时的堆栈行为
- python - ValueError:时间数据“结束日期”与格式“%m/%d/%Y”不匹配
- amazon-web-services - 如何让 SQS 消息触发的 AWS Lambda 函数失败
- swift - Core Data 和 SwiftUI 多态性问题
- image - 如何使用 d3 将函数放入我的 svg 图像中?
- json - 是否可以通过对象中的值(不提供键)在表中查找记录?
- node.js - 美通 | KeenThemes 图表不工作 Laravel
- flutter - 扑。带中介的 Admob 广告