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

209
Visualizações
¿Cómo filtrar los datos de una matriz en función de otro valor de matriz?

Tengo datos de matriz como estos.

 const dataSample = [ { "staff": 1000, "name": "Apple", "logo_url": "biten apple", "down":"yes" }, { "staff": 500, "name": "Microsoft", "logo": "squares", "down":"no" }, { "staff": 4000, "name": "Google", "logo_url": "letter", "down":"no" }, { "staff": 2000, "name": "Coca Cola", "logo": "letters", "down":"yes" }, ];

tengo otra matriz

 const filterArr = [“name”, “down”];

Quiero una salida como estas?

 [ { "name": "Apple", "down": "yes" }, { "name": "Microsoft", "down": "no" }, { "name": "Google", "down": "no" }, { "name": "Coca Cola", "down": "yes" }, ];
about 4 years ago · Juan Pablo Isaza
3 Respostas
Responde à pergunta

0

  • Asigne sobre la matriz original, dataSample en su caso.
  • Convierta cada objeto en una matriz usando Object.entries y filtre los elementos donde la clave está presente en la matriz de búsqueda ( filterArr ).
  • Convierta la matriz nuevamente en un objeto usando Object.fromEntries

 const dataSample = [ { staff: 1000, name: "Apple", logo_url: "biten apple", down: "yes" }, { staff: 500, name: "Microsoft", logo: "squares", down: "no" }, { staff: 4000, name: "Google", logo_url: "letter", down: "no" }, { staff: 2000, name: "Coca Cola", logo: "letters", down: "yes" }, ], filterArr = ["name", "down"], output = dataSample.map((o) => Object.fromEntries( Object.entries(o).filter(([k, v]) => filterArr.includes(k)) ) ); console.log(output);

Si está tratando con matrices grandes, debería considerar convertir la matriz de búsqueda ( filterArr ) en un Set .

 const dataSample = [ { staff: 1000, name: "Apple", logo_url: "biten apple", down: "yes" }, { staff: 500, name: "Microsoft", logo: "squares", down: "no" }, { staff: 4000, name: "Google", logo_url: "letter", down: "no" }, { staff: 2000, name: "Coca Cola", logo: "letters", down: "yes" }, ], filterArr = ["name", "down"], filterSet = new Set(filterArr), output = dataSample.map((o) => Object.fromEntries(Object.entries(o).filter(([k, v]) => filterSet.has(k))) ); console.log(output);

about 4 years ago · Juan Pablo Isaza Relatório

0

Esto se puede hacer usando Array.map() combinado con Array.reduce() de la siguiente manera:

 const result = dataSample.map(o => filterArr.reduce((acc, curr) => { acc[curr] = o[curr]; return acc; }, {}));

Eche un vistazo al código ejecutable a continuación y vea cómo funciona.

 const dataSample = [{ "staff": 1000, "name": "Apple", "logo_url": "biten apple", "down": "yes" }, { "staff": 500, "name": "Microsoft", "logo": "squares", "down": "no" }, { "staff": 4000, "name": "Google", "logo_url": "letter", "down": "no" }, { "staff": 2000, "name": "Coca Cola", "logo": "letters", "down": "yes" }, ]; const filterArr = ["name", "down"]; const result = dataSample.map(o => filterArr.reduce((acc, curr) => { acc[curr] = o[curr]; return acc; }, {})); console.log(result)

about 4 years ago · Juan Pablo Isaza Relatório

0

prueba esto:

 const dataSample = [ { staff: 1000, name: "Apple", logo_url: "biten apple", down: "yes" }, { staff: 500, name: "Microsoft", logo: "squares", down: "no" }, { staff: 4000, name: "Google", logo_url: "letter", down: "no" }, { staff: 2000, name: "Coca Cola", logo: "letters", down: "yes" }, ]; const filterArr = ["name", "down"]; let output = dataSample.map((cv) => Object.assign( ...filterArr.map(fa => ({[fa]: cv[fa]})))); console.log(output);

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