gpt4 book ai didi

javascript - 如何在 Javascript 中一次更改对象的多个属性?

转载 作者:行者123 更新时间:2023-12-01 00:50:08 26 4
gpt4 key购买 nike

我正在尝试使用 Mongoose 更新文档。我想一次更新多个属性。我尝试使用展开运算符来克隆文档并覆盖需要使用用户输入更新的属性,但它返回错误 document.save 不是函数。我有点明白为什么它会抛出错误。因为它不是同一个对象,它只是一个克隆,所以它没有 save 方法。如果我错了,请纠正我。所以我的问题是:有没有办法像使用扩展运算符一样更新对象?

我的代码:

router.put("/posts/update", (req, res)=>{
const {id, updatedFields} = req.body;
Post.findById(id).exec((err, post)=>{
if(err) throw err;
post = {...post, updatedFields};
post.save();
res.json(post);
})
});

最佳答案

您可以使用Object.assign

post= Object.assign(post, updatedFields);

分配函数可以接受任意数量的参数。每个参数从左到右应用于最左边。因此,如果多个参数拥有相同的属性,则其值将是右侧的那个。

关于javascript - 如何在 Javascript 中一次更改对象的多个属性?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/57055581/

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