克隆 4D 多维数组

Clone a 4D multidimensional array

我知道之前有人问过这个问题,但所有答案都假设数组是二维数组并且只深入一层。

我有一个 4D 数组,并尝试了这里的一些解决方案,但没有得到结果。这是我的数组:

我尝试了 this question 的回答,但这只深入了一层。我如何让它与 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);

实际上看那个问题的底部答案,已经有(更复杂的)深度复制功能,例如this one。当然,如果你想要一个非常简单的只有深拷贝数组的版本,你仍然可以使用我的。