Así que tengo una matriz vacía:
const logsEmbed = { color: '15c9c9', title: '', fields: [], timestamp: new Date() }Los datos que quiero recibir quiero que se vean así:
{ name: headline1, value: value1 \n value2 \n value3, }, { name: headline2, value: value1 \n value2 \n value3, }Lo que estoy recibiendo:
{ name: headline1, value: value1, }, { name: headline1, value: value2, }Básicamente, quiero obtener 1 título único con todos los valores debajo, y luego ir al siguiente título y obtener todos los valores allí.
Los datos en la base de datos se ven así:
1|Headline1|Value1|2022-04-22 18:05:52.473 +00:00|2022-04-22 18:05:52.473 +00:00 2|Headline1|Value2|2022-04-22 18:15:40.061 +00:00|2022-04-22 18:15:40.061 +00:00 3|Headline1|Value3|2022-04-22 18:16:45.313 +00:00|2022-04-22 18:16:45.313 +00:00 4|Headline2|Value4|2022-04-22 18:19:13.985 +00:00|2022-04-22 18:19:13.985 +00:00 5|Headline2|Value5|2022-04-22 18:19:36.230 +00:00|2022-04-22 18:19:36.230 +00:00Actualmente, estoy enviando algunos valores a esta matriz a través de un bucle for de datos en una base de datos usando secuencialización, ofc eso no me está llevando a donde quiero llegar, pero... Espero que algunos puedan ayudarme en mi camino
const raids = await logs_table.findAll({ attributes: ['raid'], group: ['raid'] }); for(const raid of raids) { const logs = await logs_table.findAll({ attributes: ['raid', 'link' ], where: {raid: raid.raid }}); for(const log of logs) { logsEmbed.fields.push({name: log.raid, value: log.link, inline: false }); }Creo que esto es lo que estás buscando:
const raids = await logs_table.findAll({ attributes: ['raid'], group: ['raid'], }); for (const raid of raids) { const logs = await logs_table.findAll({ attributes: ['raid', 'link'], where: { raid: raid.raid }, }); logs.forEach((log) => { const matchIndex = logsEmbed.fields.findIndex( (field) => field.name === log.raid ); if (matchIndex < 0) logsEmbed.fields.push({ name: log.raid, value: log.link }); else logsEmbed.fields[matchIndex].value += ` \n ${log.link}`; }); } Tenga en cuenta que realizar la solicitud de base de datos ( logs_table.findAll ) dos veces es probablemente un error, debería poder recuperar todos los datos en una sola solicitud.