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

206
Views
¿Puede el 'operador de propagación' reemplazar un objeto con el mismo uuid? Solución: Objeto.assing()

Estaba tratando de reemplazar una propiedad de un Objeto en una matriz con la sintaxis extendida como esta:

 const origArray = [ { "uuid":"first-team-uuid", "name":"Team 1", "players": [ "first-team-uuid" ] }, { "uuid":"second-team-uuid", "name":"Team 2", "players":[] } ] const doesNotWork = (prev, index, newName) => [...prev, {...prev[index], name: newName}] const result1 = doesNotWork(origArray, 0, "Team3") console.log(result1) // # I know this works: const doesWork = (prev, index, newName) => { let old = [...prev] old.splice(index, 1, {...prev[index], name: newName}); return old; } const result2 = doesWork(origArray, 0, "Team3") console.log(result2)

Espero que reslut1 sea como result2, pero parece que estoy equivocado. Me gustaría escribir esto en una función de una sola línea y no con la solución que tengo actualmente, si es posible.

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

0

Puedo sugerir estas formas, a través de un filtro, un mapa y un objeto.

Pero la forma de filtro cambia el orden de los elementos en la matriz

 const origArray = [ {"uuid":"c752cf08","name":"Team 1",}, {"uuid":"d46829db","name":"Team 2",}, {"uuid":"d46829d0","name":"Team 3",}]; const match = 1; const name = 'Team 100'; //------------------------ const workWithFilter = (prev) => [...prev.filter((_, i) => i !== match), { ...prev[match], name }]; const result1 = workWithFilter(origArray); console.log('workWithFilter:', result1); //------------------------ const workWithMap = (prev) => prev.map((v, i) => (i === match) ? { ...v, name } : v); const result3 = workWithMap(origArray); console.log('workWithMap:', result3); //------------------------ const workWithObject = (prev) => Object.assign([...prev], { [match]: { ...prev[match], name } }); const result4 = workWithObject(origArray); console.log('workWithObject:', result4); //------------------------ const doesWork = (prev) => { let old = [...prev] old.splice(match, 1, { ...prev[match], name }); return old; } const result2 = doesWork(origArray); console.log('doesWork:', result2);
 .as-console-wrapper {max-height: 100% !important; top: 0}

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!