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

150
Vistas
comportamiento extraño de javascript al calcular datos de back-end

Al filtrar datos en el backend, por alguna razón, los datos de respuesta esperados son incorrectos, pero los registros están bien.

básicamente tengo esta información dentro de mi base de datos mongodb:

 { _id: new ObjectId("626a2f00551aa3876e2562eb"), username: 'Warren Buffet', email: 'pog@gmail.com', money: 158, trades: [ { coin: 'BTC', open: 39341.40429922862, amount: 500, id: '38b6dbf9-8641-46c0-a2ed-6438dad3515c', _id: new ObjectId("626a2ff1551aa3876e2562f2") }, { coin: 'SOL', open: 99.21601863521198, amount: 72, id: '71e1034e-1466-4d61-b490-22c096c616c6', _id: new ObjectId("626a3e833aa72fb27a936256") }, { coin: 'VET', open: 0.051906156364343044, amount: 100, id: '0c1d687c-9efc-4e1f-b1c2-edff3416fc41', _id: new ObjectId("626a3e913aa72fb27a93625c") }, { coin: 'MKR', open: 1678.9138538755535, amount: 120, id: '18c64d96-ac8d-4c4b-b320-b06ce226e845', _id: new ObjectId("626a3ea03aa72fb27a936262") }, { coin: 'DOT', open: 16.923201350318724, amount: 50, id: '0fd4f53e-335c-4c66-b99c-47ba1898d954', _id: new ObjectId("626a3f023aa72fb27a9364e9") } ], __v: 5 }

hay varios documentos como este.

 let users = await User.find(); const data = users.map((user) => { const money = user.money.toFixed(2); let investedMoney = user.trades.map((value) => value.amount); investedMoney = investedMoney.reduce((prev, curr) => prev + curr, 0); console.log(investedMoney); //I get the expected value return { username: user.username, money: money + investedMoney, //the actual response data contains only 'money', not 'money + investedMoney' trades: user.trades.length, }; }); res.status(200).json({ success: true, data: data });

este es mi codigo El objetivo es recopilar el nombre de usuario, el dinero (tanto invertido como no invertido) y el número de transacciones. Por alguna razón, mis datos de respuesta contienen solo el valor del money , ignorando por completo el dinero moneyInvested . Lo raro es que intenté desconectarme de moneyInvested y obtuve el valor esperado. No estoy seguro de lo que está mal aquí para ser honesto.

about 4 years ago · Juan Pablo Isaza
1 Respuestas
Responde la pregunta

0

Lo encontré, el dinero var es una cadena. Reemplazar

 return { username: user.username, money: money + investedMoney, //the actual response data contains only 'money', not 'money + investedMoney' trades: user.trades.length, };

con

 return { username: user.username, money: Number(money) + investedMoney, trades: user.trades.length, };
about 4 years ago · Juan Pablo Isaza 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