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

224
Visualizações
Cómo crear una nueva matriz de objetos a partir de una matriz de objetos existente, filtrada para que coincida con una lista de claves

Tengo una matriz de objetos, ejemplo:

 [ { "fName": "Jon", "lName": "Doe", "age": "30", "shirtSize": "M" }, { "fName": "Jane", "lName": "Foe", "age": "25", "shirtSize": "M" }, ... ]

También tengo una lista de claves, ejemplo:

 ["age", "shirtSize"]

Quiero tomar la matriz de objetos y crear una nueva matriz de objetos que coincida con la matriz de la lista de claves, filtrando efectivamente la matriz de objetos para tener solo los pares clave/valor que quiero. Los anteriores son ejemplos, y los conjuntos de datos reales son, por supuesto, más detallados. Lo he forzado bruscamente en mi algoritmo a continuación y, como era de esperar, no es muy eficaz en absoluto, como resultado de mi bucle dentro del mapa. Mi resultado es como:

 [ { "age": "30", "shirtSize": "M" }, { "age": "25", "shirtSize": "M" }, ... ]

No estoy usando nada como lodash. ¿Cómo puedo mejorar este rendimiento?

 const data = [ { "fName": "Jon", "lName": "Doe", "age": "30", "shirtSize": "M" }, { "fName": "Jane", "lName": "Foe", "age": "25", "shirtSize": "M" } ]; const keyList = ["age", "shirtSize"]; const filteredDataset = data.map((elem) => { let tempHolder = {}; for (let key of keyList) { tempHolder[key] = elem[key]; } return tempHolder; }); return filteredDataset;
about 4 years ago · Juan Pablo Isaza
2 Respostas
Responde à pergunta

0

var results = []; for(var person of data){ var obj = {}; for(var key of keyList){ obj[key] = person[key]; } results.push(obj); }

El primer ciclo itera a través de los datos, y el ciclo interno itera a través de keyList y agrega esos atributos al objeto temporal, que luego se envía a la matriz de resultados.

EDITAR: Su código es básicamente el mismo, con el suyo solo usando el mapa para iterar en lugar de un bucle for...of.

about 4 years ago · Juan Pablo Isaza Relatório

0

Puede expresar el mismo algoritmo de forma más declarativa:

 const select = (props) => (objs) => objs .map (o => Object .fromEntries (props .map (p => [p, o[p]]))) const items = [{fName: "Jon", lName: "Doe", age: "30", shirtSize: "M"}, {fName: "Jane", lName: "Foe", age: "25", shirtSize: "M"}] console .log (select (["age", "shirtSize"]) (items))

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