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

196
Vistas
valores de suma en una matriz basada en otra matriz

Actualmente estoy tratando de sumar algunos valores en una matriz de objetos, según la identificación de otra matriz presente en la matriz actual. suponiendo que tengo esta matriz

 const queryArray = [ "1" , "2" ]

y esta es la matriz que me gustaría sumar si los valores de propiedad de las tarifas de la identificación coinciden

 const services = [ { Id: "1", services: "Early Check-In", fees: "7500" }, { Id: "2", services: "Late Checkout", fees: "7500" }, { Id: "3", services: "Airport Chauffeur", fees: "25000" } ]

por lo tanto, me gustaría obtener la suma del valor de la propiedad de las tarifas en la matriz de servicios aquí en función de la identificación disponible en queryArray. entonces en este caso

 [ "1" , "2" ]

debería volver

 15000

si decidiera usar esto a continuación

 [ "1" , "3" ]

debería volver

 32500

y si tambien lo haces

 [ "1", "2" , "3"]

debería volver

 40000

Soy nuevo en javascript, por lo que ni siquiera puedo pensar en ninguna solución posible o en el paso a seguir.

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

0

Claro, filter los servicios que necesita -> map el servicio a su valor -> reduce la lista resultante a un solo número agregando los elementos:

 const services = [ { Id: "1", services: "Early Check-In", fees: "7500" }, { Id: "2", services: "Late Checkout", fees: "7500" }, { Id: "3", services: "Airport Chauffeur", fees: "25000" } ] const ids = ["1" , "2"] console.log( services .filter(({Id}) => ids.includes(Id)) .map(({fees}) => parseFloat(fees)) .reduce((acc, fees) => acc + fees, 0) )

about 4 years ago · Juan Pablo Isaza Denunciar

0

Verifique si la identificación está incluida en la matriz de identificación dentro del reductor:

 const services = [ { Id: "1", services: "Early Check-In", fees: "7500" }, { Id: "2", services: "Late Checkout", fees: "7500" }, { Id: "3", services: "Airport Chauffeur", fees: "25000" } ] const queryArray = [ "1" , "2" ] const res = services.reduce((a,b) => queryArray.includes(b.Id) ? a += +b.fees : a, 0) console.log(res)

about 4 years ago · Juan Pablo Isaza Denunciar

0

También puede usar reduce, y para cada entrada verifique si el Id. del valor actual está en queryArray. Si es así, devuelva el total actual más las tarifas actuales.

Establezca un 0 como valor inicial.

 const services = [{ Id: "1", services: "Early Check-In", fees: "7500" }, { Id: "2", services: "Late Checkout", fees: "7500" }, { Id: "3", services: "Airport Chauffeur", fees: "25000" } ] const queryArray = ["1", "2"] let res = services.reduce( (total, curr) => queryArray.includes(curr.Id) ? total + parseInt(curr.fees, 10) : total, 0 ); console.log(res);

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