gpt4 book ai didi

Javascript 复制数组的数组

转载 作者:行者123 更新时间:2023-12-02 21:32:16 24 4
gpt4 key购买 nike

我想在不同的分配处复制数组的数组。

我知道我可以通过以下方式复制数组:

a = [[1, 2], [3, 4]]
b = a.slice() // this makes sure that a and b are allocated differently in memory

现在,如果我更改 b 中的某些内容,那么当然,

b[0] = 'abc'
console.log(a, b) // expect a = [[1,2], [3,4]] and b = ['abc', [3,4]]

但是当我执行以下操作时,a 也会改变......!

b[0][0] = 'abc'
console.log(a, b) // now it gives a = [['abc', 2], [3, 4]] and b = [['abc', 2], [3, 4]]

为什么会发生这种情况,如何避免 a 发生变异?非常感谢!

最佳答案

如果您知道您只是复制 2D 数组,则可以使用如下所示的函数并避免使用 JSON:

function copy2D(array){
result = []
array.forEach((subArray) => {
result.push(subArray.slice())
})
return result
}

关于Javascript 复制数组的数组,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/60591733/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com