gpt4 book ai didi

javascript - 在 Mongoose 的 forEach 循环中添加属性

转载 作者:行者123 更新时间:2023-12-04 23:23:29 26 4
gpt4 key购买 nike

假设我的帖子数组中的每个帖子都有两个属性名称和编号。所以它就像

var posts = [{name:"hey", number: 1}, {name:"foo", number:"2"}]

Javascript 允许我在 foreach 循环中更改这些属性,如下所示:
posts.forEach(function(post){
post.name = "bar"
});

我的数组变成:
var posts = [{name:"bar", number: 1}, {name:"bar", number:"2"}]

但它不允许我添加一个新属性,如:
posts.forEach(function(post){
post.adress = "bar"
});

我的对象保持不变。有没有办法在 javascipt 的 foreach 循环中添加属性

编辑:

这是在回调中使用 Mongoose 发生的..
  Post.pagination(options, function(err, posts) {
if (err) console.log(err)
posts.forEach(function(post){
post.votetype = 1;
});
console.log(posts);
res.send({ posts : posts })
})

未添加此 votetype 属性后

最佳答案

问题是从 Mongoose 返回的数据是不可变的。
下面的代码未经测试,但应该为您提供有关如何使数据可变并对其进行修改的提示。

关键是调用toObject()在要修改的 Mongoose 文档对象上。

Post.pagination(options, function(err, posts) {
if (err) console.log(err);

var resultPosts = posts.map(function(post) {
var tmpPost = post.toObject();

// Add properties...
tmpPost.votetype = 1;

return tmpPost;
});

console.log(resultPosts);
res.send({ posts : resultPosts });
});

关于javascript - 在 Mongoose 的 forEach 循环中添加属性,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/17959920/

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