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

123
Vistas
¿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 Respuestas
Responde la pregunta

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 Denunciar

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 Denunciar

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 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