Business
Jobs
  • About Us
  • Solutions
    • Job Postings
      Post your job and receive qualified candidates in 48h.
    • Candidate Assessments
      500+ technical and psychological tests, plus anti-fraud.
    • Headhunting
      Tailor-made executive search from start to finish.
    • Payroll + EOR
      Payroll dispersal and EOR across 15+ LATAM countries.
  • Pricing
  • Jobs

0

122
Views
Agrupación de valores en una matriz de objetos de dos objetos en función de claves diferentes

Necesito agrupar dos objetos en una matriz de objetos.

Objetos iniciales:

 {strIngredient1: 'Light rum', strIngredient2: 'Lime', strIngredient3: 'Sugar', strIngredient4: 'Mint', strIngredient5: 'Soda water'} {strMeasure1: '2-3 oz ', strMeasure2: 'Juice of 1 ', strMeasure3: '2 tsp ', strMeasure4: '2-4 '}

Me gustaría que la matriz final de objeto se vea así:

 [ {ingredient: 'Light rum', measure: '2-3 oz'}, {ingredient: 'Lime', measure: 'Juice of 1'}, etc... (if no measure, fill with empty string) ]

He intentado analizar los objetos en dos matrices en función de las claves y los valores, luego recorrer ambas matrices y generar los valores en función del número en las claves, sin embargo, tiene que haber una forma más eficiente de obtener el resultado deseado. ¿Alguna sugerencia?

about 4 years ago · Juan Pablo Isaza
2 answers
Answer question

0

Puede recorrer las claves del objeto de ingredientes y crear la matriz deseada cortando el número de ingrediente y buscando la medida correspondiente para ese número.

 const ingredients = { strIngredient1: "Light rum", strIngredient2: "Lime", strIngredient3: "Sugar", strIngredient4: "Mint", strIngredient5: "Soda water" }, measurements = { strMeasure1: "2-3 oz", strMeasure2: "Juice of 1", strMeasure3: "2 tsp", strMeasure4: "2-4" }, result = Object.keys(ingredients).map((k) => ({ ingredient: ingredients[k], measure: measurements[`strMeasure${k.slice(13)}`] ?? "", })); console.log(result);

about 4 years ago · Juan Pablo Isaza Report

0

Podrías separar las llaves y construir un nuevo objeto.

 const data = [{ strIngredient1: 'Light rum', strIngredient2: 'Lime', strIngredient3: 'Sugar', strIngredient4: 'Mint', strIngredient5: 'Soda water' }, { strMeasure1: '2-3 oz ', strMeasure2: 'Juice of 1 ', strMeasure3: '2 tsp ', strMeasure4: '2-4 ' }], keys = { strIngredient: 'ingredient', strMeasure: 'measure' }, result = data.reduce((r, o, i) => { Object.entries(o).forEach(([key, value]) => { const [, k, i] = key.match(/^(.*?)(\d+)$/); (r[i - 1] ??= { ingredient: '', measure: '' })[keys[k]] = value; }); return r; }, []); console.log(result);

about 4 years ago · Juan Pablo Isaza Report
Answer question
Find remote jobs

Discover the new way to find a job!

Top jobs
Top job categories
Business
Post vacancy Pricing Sales
Legal
Terms and conditions Privacy policy
© 2026 PeakU Inc. All Rights Reserved.
Andres GPT
Show me some job opportunities
There's an error!