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
¿Hay alguna forma mejor de refactorizar una matriz de objetos en javascript?

Tengo una variedad de objetos como este:

 [{ grade: 1, title: 'TitleA', code_no: 1, code_name: 'A', business_number: '', total_sales_count: 213, general_number: 0, resident_number: 20, address: '', }, { grade: 2, title: 'TitleB', code_no: 1, code_name: 'A', business_number: '', total_sales_count: 300, general_number: 0, resident_number: 12, address: '', }, { grade: 3, title: 'TitleC', code_no: 1, code_name: 'A', business_number: '', total_sales_count: 221, general_number: 0, resident_number: 9, address: '', }, ... ]

y yo estaba tratando de refactorizar los objetos de esta manera:

 [{ grade: 1, title: 'TitleA', type : {code_no: 1, code_name: 'A'}, business_number: '', counts: { total_sales_count: 213, general_number: 0, resident_number: 20 }, address: '', }, { grade: 2, title: 'TitleB', type: {code_no: 1, code_name: 'A'}, business_number: '', counts: { total_sales_count: 300, general_number: 0, resident_number: 12 }, address: '', }, { grade: 3, title: 'TitleC', type: {code_no: 1, code_name: 'A'}, business_number: '', counts: { total_sales_count: 221, general_number: 0, resident_number: 9 }, address: '', }, ... ]

Entonces, la primera vez, solo usé un método de map como este

 const test: any = data.map((i: any) => { const obj: any = { ...i, type: { code_no: i.code_no, code_name: i.code_name, }, counts: { total_sales_count: i.total_sales_count, general_number: i.general_number, resident_number: i.resident_number }, }; return obj; });

e intenté eliminar los datos duplicados de la matriz, pero creo que no es el enfoque correcto para cambiar la estructura de la matriz... (porque tengo que cambiar los datos varias veces, no a la vez).

Soy muy nuevo en javascript, así que creo que hay una forma más eficiente de reestructurar el formato, pero no pude captar una pista. ¿Hay alguna forma de cambiar la estructura de una matriz de objetos?

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

0

Puede desestructurar solo las propiedades que necesita modificar y para el resto de las propiedades predeterminadas puede usar el operador de extensión

también type: { code_no,code_name} es la abreviatura de type: { code_no: code_no,code_name: code_name}

 let data = [{ grade: 1, title: 'TitleA', code_no: 1, code_name: 'A', business_number: '', total_sales_count: 213, general_number: 0, resident_number: 20, address: '', }, { grade: 2, title: 'TitleB', code_no: 1, code_name: 'A', business_number: '', total_sales_count: 300, general_number: 0, resident_number: 12, address: '', }, { grade: 3, title: 'TitleC', code_no: 1, code_name: 'A', business_number: '', total_sales_count: 221, general_number: 0, resident_number: 9, address: '', },] const test = data.map(({code_no,code_name,total_sales_count,general_number,resident_number, ...defaultProps}) => { const obj = { ...defaultProps, type: { code_no,code_name}, counts: {total_sales_count,general_number,resident_number}, }; return obj; }); console.log(test)

about 4 years ago · Juan Pablo Isaza Report

0

Desestructura los accesorios que se supone que se agregarán a los objetos nuevos y captura las otras propiedades con la sintaxis de descanso . Luego crea y devuelve un nuevo objeto.

 const data=[{grade:1,title:"TitleA",code_no:1,code_name:"A",business_number:"",total_sales_count:213,general_number:0,resident_number:20,address:""},{grade:2,title:"TitleB",code_no:1,code_name:"A",business_number:"",total_sales_count:300,general_number:0,resident_number:12,address:""},{grade:3,title:"TitleC",code_no:1,code_name:"A",business_number:"",total_sales_count:221,general_number:0,resident_number:9,address:""}]; const out = data.map(obj => { const { code_no, code_name, total_sales_count, general_number, resident_number, ...rest } = obj; return { ...rest, type: { code_no, code_name }, counts: { total_sales_count, general_number, resident_number } }; }); console.log(out);

about 4 years ago · Juan Pablo Isaza Report

0

No creo que puedas evitar usar un mapa o un bucle para lograr lo que quieres hacer. Use el mapa, pero debe declarar cada propiedad del nuevo objeto. Usando ...mantendré todas las propiedades antiguas y agregaré las nuevas también.

 yourObjects.map((obj) => { return { grade: obj.grade, title: obj.title, type: {code_no: obj.code_no, code_name: obj.code_name }, counts: { total_sales_count: obj.total_sales_count, general_number: obj.general_number, resident_number: obj. resident_number }, address: obj.address, } }
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!