如何动态地向对象添加数组元素?
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);
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);