首页 > 解决方案 > 将值添加到 FOR 循环内的数组中的对象

问题描述

我有一个从 Mongo 中提取的数组,格式如下

[
  {
    _id: 60d51d210e5e4e297066132a,
    MemberName: 'Name of Member',
    MemberRank: 25,
    MemberFDR: 6.43,
    MemberImageurl: 'uploads/images/gauravverma.jpg'
  },
  {
    _id: 60d5c619c163f23195e01d00,
    MemberName: 'Name Of Member',
    MemberRank: 24,
    MemberFDR: 6.5,
    MemberImageurl: 'uploads/images/shashikhanna.jpeg'
  },
]

提取原始数组后,我循环遍历数组,提取成员的名称,然后在数据库中执行更多查询。这个返回查询的长度是计数,我想像这样将它添加到原始对象中

[
      {
        _id: 60d51d210e5e4e297066132a,
        MemberName: 'Name of Member',
        MemberRank: 25,
        MemberFDR: 6.43,
        MemberImageurl: 'uploads/images/gauravverma.jpg',
        Count: 3(whatever the length of the array will be)
      },
      {
        _id: 60d5c619c163f23195e01d00,
        MemberName: 'Name Of Member',
        MemberRank: 24,
        MemberFDR: 6.5,
        MemberImageurl: 'uploads/images/shashikhanna.jpeg'
        Count: 5(whatever the length of the array will be)
      },
    ]

我的查询完美地返回了该值,我正在为如何在原始对象中插入该值而苦苦挣扎。

let memberName
  let countOfCurrentChallengeMatches
  for(let i=0; i<challengeList.length; ){
    console.log("hi i am here 1")
    memberName = challengeList[i].MemberName
    console.log(memberName)
    try {
      console.log(memberName)
      countOfCurrentChallengeMatches = await MatchRegister.find({
        $and: [
          { $or: [{ChallengingPlayer: memberName},{ChallengedPlayer: memberName}] },
          { $or: [{ChallengeStatus: 'Awaiting Score Approval'},{ChallengeStatus: 'Accepted'},{ChallengeStatus: 'Completed'}, {ChallengeStatus: 'Issued'}] },
          {ChallengerMonth: cMonth},
        ],
    },'_id ChallengingPlayer ChallengedPlayer ChallengerMonth ChallengerYear ProposedChallengeDate ProposedChallengeTime ChallengeMatchLocation ChallengeStatus MatchFormat RejectionReason')
    .sort({ProposedChallengeDate: 1}).exec()
    } catch (err) {
      const error = new HttpError(
        'Something went wrong, could not update member.',
        500
      );
      return next(error);
    }
        // Here is where i want to insert the value in the object

    i++
  }

我已经尝试过诸如推送、添加和谷歌的其他一些选项,但没有任何效果。

标签: javascriptarrays

解决方案


嘿,这条简单的线奏效了。不起诉为什么我在研究中错过了它

challengeList[i].count = countOfCurrentChallengeMatches.length

推荐阅读