gpt4 book ai didi

javascript - 数组函数上不需要的双重赋值

转载 作者:行者123 更新时间:2023-11-30 09:43:50 27 4
gpt4 key购买 nike

function myFunction()
{
var Arr2
if(Arr1!=null)
{
Arr2=Arr1
console.log("Arr2 before for: "+Arr2)
console.log("Arr1 before for: "+Arr1)
}
for(var index=-1+Arr2.length;index>=0;index--)
{
if(Arr2[index]=="to_delete")
{
Arr2.splice(index,1)
}
}
console.log("Arr1 after for: "+Arr1)
console.log("Arr2 after for: "+Arr2)
}

我在一个函数中创建了 Arr2,Arr2=Arr1,问题是 Arr1 在 for 期间也被拼接,并且从最后两个 console.logs 我得知这 2 个数组是相同的。 (我只想改Arr2)

最佳答案

当您执行 Arr2 = Arr1 时,您只是复制对该数组的引用,而不是复制数组本身。因此 Arr1Arr2 现在将引用同一个数组。

尝试改变

Arr2=Arr1

Arr2 = Arr1.slice()

应该将 Arr1 中的所有元素复制到新的 Arr2 中。查看Array.prototype.slice了解更多信息。

关于javascript - 数组函数上不需要的双重赋值,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/39838849/

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