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

82
Visualizações
.filter() not filtering the items from the array

I have this array of data in Javascript:

// console.log(currentMembers.members)
// *************************
// CURRENT MEMBERS
// *************************
// [
//   new ObjectId("62385d8caee17d13a1762b39"),
//   new ObjectId("6238a480170aff10d16ccd86"),
//   new ObjectId("6238a480170aff10d16ccd86"),
//   new ObjectId("6238a608170aff10d16ccd89")
// ]

I want to remove from the array one value that matches the variable "memberToRemove". So .filter() should be enough to perform this but it doesn't and I'm lost.

try {
    const newListofMembers = currentMembers.members.filter(
      member => member._id !== memberToRemove
    );
const updatedMembers = await Group.findOneAndUpdate(
    { _id: groupId },
    { members: newListofMembers }
    );
    console.log('Users successfully updated.');
    return res.status(200).json({ success: true, members: newListofMembers });
  } catch (err) {
    console.log(err);
    next(err);
  }

When I perform this action nothing happens, when I console.log(newListOfMembers) the filter doesn't seem to work at all, it ignores the member => member !== memberToRemove. The member to remove is 6238a608170aff10d16ccd89.

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

0

Simplest, you can change you filter into this member => String(member._id) === memberToRemove

But the right way is

const _ = require('lodash');
const { Types } = require('mongoose');

const newListofMembers = currentMembers.members.filter(
      member => !_.isEqual(member._id, Types.ObjectId(memberToRemove))
);

You can replace member => !_.isEqual(member._id, Types.ObjectId(memberToRemove)) with member => !_.isEqual(member, Types.ObjectId(memberToRemove)) or !item.equals(memberToRemove)

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