gpt4 book ai didi

javascript - 更改嵌套对象的引用是否正在更改对根对象的引用?

转载 作者:行者123 更新时间:2023-11-28 03:37:10 26 4
gpt4 key购买 nike

我不完全确定如何测试 - 请告知

假设我们有对象 X

{
a: {
b: {
c: true
}
}
}

然后我们对其进行变异,这样我们就有了对象 Y

{
a: {
b: {
...X.a.b.c,
c: false
}
}
}

问题是,如果我们比较 X === Y(使用严格相等),它会返回 true,因为比较对象的引用相同,但子对象的引用不同?

最佳答案

要比较两个嵌套对象,我们应该进行深度比较。 === 只会检查对象的引用是否相等。为了进行深度比较,我们可以使用 loadash 的 isEqual 函数。_.isEqual(X, Y);如果相等,它将返回 true。

或者您可以对两个对象进行字符串化并比较它们 JSON.stringify(X) === JSON.stringify(Y)

关于javascript - 更改嵌套对象的引用是否正在更改对根对象的引用?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/57600358/

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