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

157
Vistas
¿Cómo modifica el objeto dentro de una matriz usando bucle en JS?
module.exports.checkoutMany = async (data) => { let tempTotalAmount = 0 data.orderDetail.forEach(async e => { let price = await Product.findById(e.productId).then(product => { console.log(`product price from forEach: ${product.price}`) return product.price }) console.log(`price * quantity: ${price} * ${e.quantity}`) tempTotalAmount += price * e.quantity console.log(`tempTotalAmount: ${tempTotalAmount}`) }) // let newOrderDetail = data.orderDetail.map(async obj => { // if(obj.keys === price) { // return obj.price = 1 // } else { // return obj // } // }) // for(i = 0; i < data.orderDetail.length; i++) { // if(data.orderDetail[i].price) ( // ) // } console.log('newOrderDetail') console.log(newOrderDetail) let newOrder = await new Order ({ userId: data.userId, orderDetail: data.orderDetail, totalAmount: tempTotalAmount }) return newOrder.save().then((order, error) => { if(error) { return false } else { return order } }) }

Intenté obtener el nombre de la propiedad del objeto y asignarle un nuevo valor, pero no funcionó.

Mi objetivo es automatizar la propiedad del precio al obtenerla del modelo de producto.

A partir de ahora, se define manualmente dentro del req.body de Postman.

Gracias.

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

0

Creo que puedes lograr esto usando Array.map() como lo hiciste en tu primer intento comentado:

 let arr = [ {id: 1, name: "Michael"}, {id: 2, name: "Joe"}, ] const newArr = arr.map(obj => { if (obj.id === 1) { return {...obj, name: "John"}; } else { return obj; } }); console.log(newArr);

De la forma en que lo tiene ahora, está sobrescribiendo el objeto, no modificando el objeto cuando obj.price = 1. Puede usar el operador de propagación para llenar el nuevo objeto con todas las propiedades del objeto anterior y luego sobrescribir la propiedad deseada.

También está utilizando awaits en los lugares equivocados. La función de mapa y la creación de un nuevo pedido no son tareas asíncronas.

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