如何动态地向对象添加数组元素?

How to add array elements to an object dynamically?

Both answers below worked correctly, but I can't mark both as correct answer. Thank you guys <3

我有一个问题,我不知道如何解决,所以我们开始吧:D

问题是我正在为 Google 日历 API 创建一个事件,我需要在 "attendees" 部分动态添加一些邮件,但我没有知道怎么做,因为我正在处理变量,而不是动态创建对象。

我有 JS 数组中的邮件。

如果有人有任何想法,请发表评论或回答。

如果您出于测试目的需要它,我将在此处留下 API 请求示例:https://developers.google.com/apis-explorer/?hl=es#p/calendar/v3/calendar.events.insert

对不起我的英语,希望你能理解我的意思 xD

console.log(invitados)                                  //Array con mails de los invitados
    //EVENTO PARA GCALENDAR
    var event = {
        'summary': titulo,                                      //Titulo evento
        'location': titulo,                                     //Ubicación evento
        'description': descripcion,                             //Descripcion evento
        'start': {                                              //Fecha ini
            'dateTime': fechaini,
            "timeZone": "Europe/Madrid"
        },
        'end': {                                                //Fecha fin (es igual a la fechaini con la hora de finalizacion)
            'dateTime': fechafinev,
            "timeZone": "Europe/Madrid"
        },
        'recurrence': [
            'RRULE:FREQ=WEEKLY;UNTIL='+until+';'+byday          //Frecuencia de repeticion, hasta cuando, y que dias
        ],
        /*"attendees": [
            {
                "email": "mail@gmail.com"
            },
            {
                "email": "mail@gmail.com"
            }
        ],*/
        'reminders': {
            'useDefault': false,
            'overrides': [
                {'method': 'email', 'minutes': 24 * 60},
                {'method': 'popup', 'minutes': 24 * 60}
            ]
        }
    };

使用以下代码片段添加对象数组并将元素推送到其中

event.attendees=[];
member={};
for(i=0; i<invitados.length; i++){
    member.email=invitados[i];
    event.attendees.push(member);
}   

您可以使用 map :

var invitados = ['mail@mail.com', 'mail@mail.com', 'mail@mail.com'];

var event = {
  'summary': 'summary',
  // ...
  "attendees": invitados.map((e) => {
    return {email: e};
  }),
  'reminders': {
    'useDefault': false,
    'overrides': [{
        'method': 'email',
        'minutes': 24 * 60
      },
      {
        'method': 'popup',
        'minutes': 24 * 60
      }
    ]
  }
};

console.log(event);