javascript - 在javascript中向对象添加新属性不能正常工作?
问题描述
嗨,我遇到了一个看起来很容易的问题:我想向现有对象添加新属性,但在我的代码中它不能正常工作:
challengeSearchNearBy: async function (longitude , latitude,min_distance,max_distance) {
var challengeNearBy = await Challenge.find({
location: {
$near: {
$geometry: { type: "Point", coordinates: [longitude, latitude] },
$minDistance: min_distance,
$maxDistance: max_distance
}
}
});//limit(30);
const challengesPromise = challengeNearBy.map(async function(o){
const challenger_club = await Club.findById(o.challenger_club_id);
const conqueror_club = await Club.findById(o.conqueror_club_id);
o.challenger_club_name = challenger_club.club_name;
o.challenger_club_avatar = challenger_club.avatar;
o.conqueror_club_name = ObjectHelper.isNullOrUndefined(conqueror_club)? "":conqueror_club.club_name;
o.conqueror_club_avatar = ObjectHelper.isNullOrUndefined(conqueror_club)? "":conqueror_club.avatar;
console.log(o.challenger_club_name); // this line logged what I want (challenger_club_name)
return o; // but this object not contain what I want (challenger_club_name, challenger_club_avatar ...)
});
const challenges = await Promise.all(challengesPromise);
return challenges;
},
解决方案
返回地图内的新对象。
const challengesPromise = challengeNearBy.map(async function(o){
const challenger_club = await Club.findById(o.challenger_club_id);
const conqueror_club = await Club.findById(o.conqueror_club_id);
return {
...o,
challenger_club_name: challenger_club.club_name,
challenger_club_avatar: challenger_club.avatar,
conqueror_club_name: ObjectHelper.isNullOrUndefined(conqueror_club)? "":conqueror_club.club_name,
conqueror_club_avatar: ObjectHelper.isNullOrUndefined(conqueror_club)? "":conqueror_club.avatar;
}
});
推荐阅读
- r - 如何使您的排名值在 R data.table 中显示整数(不带小数)
- java - Hibernate 5.x 中的 HQL 和 Criteria API 有什么区别?
- c++ - 在不同的函数中读取文件的不同部分 - C++
- node.js - Node + Mongo / Mongoose 文本搜索分数不需要完整的整数?是否有可能以另一种方式过滤低分?
- c++ - 将原始指针移动到已创建函数中的下一个字符
- kubernetes - GKE 持久卷调整大小:文件系统调整大小未完成
- javascript - 有没有办法用
使用内联 Javascript 标记
- java - 在 java 8 中使用流反转映射
- docker - 使用版本 docker 安装 chrome 驱动程序
- python - 为什么带有小部件 CheckboxSelectMultiple 的 MultipleChoiceField 无法存储到数据库中?