Добавить новые свойства объекта в JavaScript не работает должным образом? - PullRequest
0 голосов
/ 11 ноября 2018

Привет, я застреваю с одной проблемой, которая кажется такой простой: Я хочу добавить новые свойства к существующему объекту, но это не работает должным образом вот мой код:

 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;
},

1 Ответ

0 голосов
/ 11 ноября 2018

Возвращение новых объектов на вашей карте.

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;
    }
});
...