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

412
Views
¿Realizar diferentes acciones en los 3 valores principales en el Diccionario?

Tengo un diccionario ordenado con cierto número de entradas:

 dict = {B:3, A:2, C:2, D:1, E:0, F:0...}

Después de filtrar el diccionario para obtener solo las entradas con los 3 valores más altos:

 result = Object.fromEntries(Object .entries(dict) .sort(([, a], [, b]) => b - a) .filter((s => ([, v]) => s.add(v).size <= 3)(new Set)) );

El diccionario actual es

 {"B": 3, "A": 2, "C": 2, "D": 1}

Entonces, estoy tratando de agregar 4 a los valores más grandes, 2 a los segundos valores más grandes y 1 a los terceros valores más grandes, ¿cuáles son las formas de hacer esto?

El resultado esperado: {"B": 7, "A": 4, "C": 4, "D": 2}

Una de las formas en las que puedo pensar es:

 for (const key of Object.keys(result)) { // if result[key] largest //plus 4 // if result[key] second largest //plus 2 // else //plus 1 }

Gracias por leer..

about 4 years ago · Santiago Gelvez
1 answers
Answer question

0

Puedes hacer esto usando Map y flatMap como:

 const dict = { B: 3, A: 2, C: 2, D: 1, E: 0, F: 0 }; const valuesToAdd = [4, 2, 1]; const result = Object.fromEntries([ ...Object.entries(dict) .sort(([, a], [, b]) => b - a) .filter( ( (s) => ([, v]) => s.add(v).size <= 3 )(new Set()) ) .reduce((map, arr) => { const [k, v] = arr; map.has(v) ? map.get(v).push(arr) : map.set(v, [arr]); return map; }, new Map()) .values(), ].flatMap((arr, i) => arr.map(([k, v]) => [k, v + valuesToAdd[i]])) ); console.log(result);

about 4 years ago · Santiago Gelvez 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!