Estoy tratando de convertir el par clave/valor de la matriz en un objeto usando el mapa y la función formEntries. Recibo un message:'Object.fromEntries is not a function' idea sobre la solución.
principal.js
const data = {} const channelsMap = new Map(details.channels); const channels = Object.fromEntries(channelsMap); data = channels;Rendimiento esperado
data : { channels: { "EM": true, "SMS": false } }datos
{ details: { "channels": [ { "channelType": "EM", "isActive": "true" }, { "channelType": "SMS", "isActive": "false" }] }Debe reducir la matriz de details.channels a un objeto donde el tipo de channelType es la clave y el isActive es el valor.
const original = { details: { channels: [ { channelType: "EM" , isActive: true }, { channelType: "SMS" , isActive: false }, ] } }; const transformed = { data: { channels: original.details.channels .reduce((acc, { channelType, isActive }) => ({ ...acc, [channelType]: isActive }), {}) } }; console.log(transformed); .as-console-wrapper { top: 0; max-height: 100% !important; }Actualizar su versión de Node a algo superior a v12.0.0 debería hacerlo. Este método no está incluido en su versión actual de Node. Documentación aquí .
Primero, no está permitido usar const cuando desea cambiar el valor, segundo, este es el código para el resultado esperado:
let data = {channels:details.channels.map(channel => ({[channel.channelType] : JSON.parse(channel.isActive) }))};