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

264
Visualizações
¿Combina objetos en una matriz de objetos en Typescript?

tengo problemas para combinar objetos de una matriz de objetos en mecanografiado.

la matriz se ve así:

 0: {type: 'FeatureCollection', features: Array(134)} 1: {type: 'FeatureCollection', features: Array(109)}

lo que necesito es un objeto (sin matriz) con todas las "características" combinadas, para que se vea así:

 {type: 'FeatureCollection', features: Array(243)}

soy muy nuevo en mecanografiado, así que lo siento por esa pregunta probablemente fácil ...

¡¡Muchas gracias!!

EDITAR: tal vez la pregunta no era demasiado buena para entender. Espero que esto ayude: Array(134) significa que hay 134 objetos dentro. esto hace lo que necesito manualmente cuando la matriz de objetos (colección) tiene 2 de largo:

 const result = [...collection[0].features, ...collection[1].features]; const resultCollection: FeatureCollection = collection[0]; resultCollection.features = result;

Necesito hacer que esto funcione para cualquier duración de la colección.

about 4 years ago · Juan Pablo Isaza
3 Respostas
Responde à pergunta

0

¿Estás buscando algo como esto? Tendrá que agregar tipos, pero puede fusionar las matrices de features de todas las entradas en la matriz de data utilizando métodos Vanilla JS.

  1. Cree el objeto de output y especifique su type .
  2. Use Array#filter para seleccionar las entradas en data con el tipo coincidente.
  3. Use Array#flatMap para seleccionar la matriz de features de cada una de las entradas anteriores y proyectar su contenido en una única matriz.

 const data = [ { type: 'FeatureCollection', features: [1, 2, 3] }, { type: 'FeatureCollection', features: [4, 5, 6] } ]; const output = { type: 'FeatureCollection', features: data .filter(obj => obj.type === 'FeatureCollection') .flatMap(obj => obj.features) }; console.dir(output);

about 4 years ago · Juan Pablo Isaza Relatório

0

Con la función de reducción:

 const array = [ {type: 'FeatureCollection', features: [1, 2, 3]}, {type: 'FeatureCollection', features: [4, 5, 6]}, {type: 'Test', features: [4, 5, 6]} ] const merged = array.reduce((array, item) => { const found = array.find((i) => i.type === item.type); if (found) { found.features.push(...item.features); } else { array.push(item); } return array; }, []); console.log(merged);

---- EDITADO ----

opcion 2 :

 const array = [ {type: 'FeatureCollection', features: [1, 2, 3]}, {type: 'FeatureCollection', features: [4, 5, 6]}, {type: 'Test', features: [4, 5, 6]} ] const merged = array.reduce((obj, item) => { if (obj[item.type]) { obj[item.type].push(...item.features); } else { obj[item.type] = item.features; } return obj; }, {} as {[key: string]: number[]}); const keys = Object.keys(merged); const result = keys.map((k) => ({type: k, features: merged[k]})); console.log(result);
about 4 years ago · Juan Pablo Isaza Relatório

0

Simplemente use una función Array.prototype.reduce simple y el operador de propagación

 const original = [ { type: "banana", features: ["34", "wow", "hotdog"] }, { type: "banana", features: ["dog", "cat", "recursion"] }, ]; const compress = (original) => original.reduce((acc, cur) => { acc.features = [...(acc.features ?? []), ...cur.features]; return acc; }, { type: (original[0].type) }); console.log(compress(original));

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