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

149
Visualizações
how to filter an array comparing with other js

Asking for improved solution

Hi, I have 2 arrays and I want to filter one with the only value presented in the other.

i.e.

data1 = [
    {
        "c_id": 90,
        "c_name": "Test 1",
    },
    {
        "c_id": 95,
        "c_name": "Test 2",
    },
    {
        "c_id": 93,
        "c_name": "Test 3",
    }
]

data2 = [
    {
        "id": 92,
        "name": "Test 4",
        "rates": []
    },
    {
        "id": 90,
        "name": "Test 1",
        "rates": []
    },
    {
        "id": 95,
        "name": "Test 2",
        "rates": []
    },
    {
        "id": 93,
        "name": "Test 3",
        "rates": []
    },
]

From the above array, I want to filter data2 with only the id presented in the data1.

I have the below code

let c = []
data1.filter(b => {
  if (data2.find(a => a.id == b.c_id)) {
    c.push(data2.find(a => a.id == b.c_id))
  }
})
console.log(c)

Which correctly. Please anyone can tell is there any improved solution for it?

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

0

You can create a set of data1 ids and use Array.filter to filter out the id which is present in the set.

const data1 = [
  {
    c_id: 90,
    c_name: "Test 1",
  },
  {
    c_id: 95,
    c_name: "Test 2",
  },
  {
    c_id: 93,
    c_name: "Test 3",
  },
];

const data2 = [
  {
    id: 92,
    name: "Test 4",
    rates: [],
  },
  {
    id: 90,
    name: "Test 1",
    rates: [],
  },
  {
    id: 95,
    name: "Test 2",
    rates: [],
  },
  {
    id: 93,
    name: "Test 3",
    rates: [],
  },
];

const set = new Set(data1.map((item) => item.c_id));
const result = data2.filter((item) => set.has(item.id));
console.log(result);

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