Empresas
Empleos
  • Sobre nosotros
  • Soluciones
    • Publicación de vacantes
      Publica tu vacante y recibe candidatos calificados en 48h.
    • Evaluación de candidatos
      500+ pruebas técnicas y psicológicas, más anti-fraude.
    • Headhunting
      Búsqueda ejecutiva a la medida de principio a fin.
    • Nómina + EOR
      Dispersión de nómina y EOR en más de 15 países de LATAM.
  • Precios
  • Empleos

0

126
Vistas
Cómo asignar un objeto con propiedades a la propiedad de un objeto usando reducir

tengo un dato asi

 const dataSet = [ { 'Transactions.productRef': 'SomeRef/123', 'Transactions.itemCount': 25, 'Transactions.revenue': 1000, }, { 'Transactions.productRef': 'SomeRef/124', 'Transactions.itemCount': 35, 'Transactions.revenue': 500, }, ];

y estoy tratando de asignar un objeto con propiedades al valor de 'Transactions.productRef' para tener algo como esto

 { 'SomeRef/123': { productRef: 'SomeRef/123', soldTickets: 25, revenue: 1000, }, 'SomeRef/124': { productRef: 'SomeRef/124', soldTickets: 35, revenue: 500, } }

y luego para crear una nueva matriz con objetos. He intentado algo como esto

 const dataSet = [ { 'Transactions.productRef': 'SomeRef/123', 'Transactions.itemCount': 25, 'Transactions.revenue': 1000, }, { 'Transactions.productRef': 'SomeRef/124', 'Transactions.itemCount': 35, 'Transactions.revenue': 500, }, ]; const productMap = {}; dataSet.reduce((data, p) => { p[data['Transactions.productRef']] = p[data['Transactions.productRef']] || {}; p[data['Transactions.productRef']].soldTickets = data['Transactions.itemCount']; p[data['Transactions.productRef']].revenue = data['Transactions.revenue']; p[data['Transactions.productRef']].productRef = data['Transactions.productRef']; return p; }, productMap); const newData = Object.values(productMap); console.log(newData);

pero el console.log devuelve una matriz vacía como si los datos nunca se hubieran asignado al objeto productMap . ¿Qué estoy haciendo mal? ¡Gracias por adelantado!

about 4 years ago · Santiago Gelvez
1 Respuestas
Responde la pregunta

0

Intercambie p y data en las entradas de devolución de llamada reduce como a continuación.

Porque el primer parámetro es el valor previousValue y el segundo parámetro es el currentValue .

 dataSet.reduce((p, data) => { p[data['Transactions.productRef']] = p[data['Transactions.productRef']] || {}; p[data['Transactions.productRef']].soldTickets = data['Transactions.itemCount']; p[data['Transactions.productRef']].revenue = data['Transactions.revenue']; p[data['Transactions.productRef']].productRef = data['Transactions.productRef']; return p; }, productMap);
about 4 years ago · Santiago Gelvez Denunciar
Responde la pregunta
Encuentra empleos remotos

¡Descubre la nueva forma de encontrar empleo!

Top de empleos
Top categorías de empleo
Empresas
Publicar vacante Precios Comercial
Legal
Términos y condiciones Política de privacidad
© 2026 PeakU Inc. All Rights Reserved.
Andres GPT
Recomiéndame algunas ofertas
Necesito ayuda