Empresas
Empregos
  • Sobre nós
  • Soluções
    • Publicação de vagas
      Publique sua vaga e receba candidatos qualificados em 48h.
    • Avaliações de candidatos
      Mais de 500 testes técnicos e psicológicos, mais anti-fraude.
    • Headhunting
      Busca executiva personalizada do início ao fim.
    • Folha de Pagamento + EOR
      Dispersão de folha e EOR em mais de 15 países da LATAM.
  • Preços
  • Empregos

0

132
Visualizações
¿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 Respostas
Responde à pergunta

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 Relatório

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 Relatório

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 Relatório
Responde à pergunta
Encontrar trabalhos remotos

Descubra a nova forma de encontrar um emprego!

melhores empregos
Principais categorias de trabalho
Empresas
Postar vaga Preços Comercial
Jurídico
Termos e Condições Política de privacidade
© 2026 PeakU Inc. All Rights Reserved.
Andres GPT
Recomende algumas ofertas para mim
Preciso de ajuda