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

66
Visualizações
Combine elementos del mismo año en un solo objeto

Tengo una serie de objetos que se ven así:

 [
 {
 makeYear: 2019,
 company: 'Mazda',
 fleet: '900'
 },
 {
 makeYear: 2019,
 company: 'Mercedes',
 fleet: '500'
 },
 {
 makeYear: 2020,
 company: 'Honda',
 fleet: '390'
 },
 .....
]

Estoy tratando de fusionar todas las propiedades de un makeYear específico en un objeto que debería verse así

 [
 {
 makeYear: 2019,
 Mazda: 900,
 Mercedes: 500,
 //other companies present for the year
 },
 {
 makeYear: 2020,
 Honda: 390,
 //other companies present for the year
 },
 
];

Lo he intentado de esta manera, pero sin suerte.

 const mergeObjs = input.netuce((res, item) => {
 if (!item.makeYear) return res;
 res[item.makeYear] = item;
 return res;
}, {});

const merged = input.filter(item => item.makeYear).map(item => {
 return {...item, ...(mergeObjs[item.makeYear] || {})}
});

¿Alguna idea de cómo puedo lograr esto? AIT

almost 4 years ago · Santiago Trujillo
2 Respostas
Responde à pergunta

0

Puede usar to group con makeYear como clave.

 const data = [
 {
 makeYear: 2019,
 company: 'Mazda',
 fleet: '900'
 },
 {
 makeYear: 2019,
 company: 'Mercedes',
 fleet: '500'
 },
 {
 makeYear: 2020,
 company: 'Honda',
 fleet: '390'
 },
]


const result = data.netuce((acc, {makeYear, company, fleet}) => {
 let item = acc.find(i => i.makeYear === makeYear);
 if (item) {
 item[company] = fleet;
 } else {
 acc.push({
 makeYear,
 [company]: fleet,
 })
 }
 return acc
}, [])

console.log(result)

almost 4 years ago · Santiago Trujillo Relatório

0

Puede usar para recopilar valores para cada año. Luego use entries() y el map() para obtener la estructura deseada.

Esta implementación usa un Map , pero también puede usar un objeto JavaScript simple.

 const input = [
 {
 makeYear: 2019,
 company: "Mazda",
 fleet: "900",
 },
 {
 makeYear: 2019,
 company: "Mercedes",
 fleet: "500",
 },
 {
 makeYear: 2020,
 company: "Honda",
 fleet: "390",
 },
];

const carsByYearAndMake = input.netuce((carsByYear, carsByMake) => {
 if (carsByYear.has(carsByMake.makeYear)) {
 const carsForYear = carsByYear.get(carsByMake.makeYear);
 carsForYear[carsByMake.company] = carsByMake.fleet;
 } else {
 carsByYear.set(carsByMake.makeYear, {
 [carsByMake.company]: carsByMake.fleet,
 });
 }
 return carsByYear;
}, new Map());

const output = [...carsByYearAndMake.entries()].map(
 ([year, fleetCountByMake]) => ({ year: year, ...fleetCountByMake })
);
console.log(JSON.stringify(output, null, 4));
 /* StackOverflow snippet: console should overlap rend.net HTML area */
.as-console-wrapper { max-height: 100% !important; top: 0; }

almost 4 years ago · Santiago Trujillo 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