gpt4 book ai didi

javascript - 我可以修改本地 JavaScript 对象吗?

转载 作者:行者123 更新时间:2023-12-02 22:20:46 25 4
gpt4 key购买 nike

我有一个从 firebase 数据库返回的统计对象

    var stats = await firebase
.database()
.ref("statistics")
.child(currentUser.uid)
.once("value");

对象的格式如下:

stats  Object {
"all": Object {
"pending": 1,
"settled": 0,
"vol": 100,
},
"mtd": Object {
"pending": 1,
"settled": 0,
"vol": 100,
},
"qtd": Object {
"pending": 1,
"settled": 0,
"vol": 100,
},
"today": Object {
"date": "Dec 7, 2019",
"pending": 1,
"settled": 0,
"vol": 100,
},
"yesterday": Object {
"date": "Dec 6, 2019",
"pending": 0,
"settled": 0,
"vol": 0,
},
"ytd": Object {
"pending": 1,
"settled": 0,
"vol": 100,
},
}

我可以直接覆盖stats.val().yesterday吗,比如将stats.val().yesterday设置为

    "date": "Dec 6, 2020",
"pending": 1,
"settled": 10,
"vol": 1000,
}

然后使用 stats.val() 进行最新更改?从我所做的来看,在对 yesterday 字段进行更改之前,我仍然看到旧数据。在这种情况下,如何获得有变化的 stats.val() ?谢谢!

最佳答案

val() 返回快照中数据的副本,而不是实际的底层对象。如果修改此副本,它不会更改快照中存储的内容。通过这种方式,DataSnapshot 被称为“不可变”——它无法更改。所以,你想要做的事情是不可能的。

通常,应用代码应该仅调用 val() 一次来获取数据副本,然后使用该副本填充 UI。

关于javascript - 我可以修改本地 JavaScript 对象吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/59237947/

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