Empresas
Empleos
  • Sobre nosotros
  • Soluciones
    • Publicación de vacantes
      Publica tu vacante y recibe candidatos calificados en 48h.
    • Evaluación de candidatos
      500+ pruebas técnicas y psicológicas, más anti-fraude.
    • Headhunting
      Búsqueda ejecutiva a la medida de principio a fin.
    • Nómina + EOR
      Dispersión de nómina y EOR en más de 15 países de LATAM.
  • Precios
  • Empleos

0

112
Vistas
¿Cómo puedo filtrar BlockList?

Primero, no soy un hablante de inglés. Soy un desarrollador principiante. Por favor, comprenda si mi inglés es incómodo.

Estoy creando una aplicación de chat en tiempo real y filtrando los mensajes de la persona que bloqueé. Así que estoy filtrando el número objetivo de la persona bloqueada en todo el mensaje. Pero este proceso de filtrado no está funcionando bien. ¿Me puedes ayudar?

  1. Los mensajes vienen en forma de disposición de objetos desde el servidor.

como esto

 Message :  [{…}, {…}, {…}, {…}, {…}, {…}, {…}, {…}, {…}, {…}, {…}, {…}, {…}, {…}, {…}, {…}, {…}, {…}, {…}, {…}, {…}, {…}, {…}, {…}, {…}, {…}, {…}, {…}, {…}, {…}, {…}, {…}, {…}, {…}, {…}, {…}, {…}, {…}] {type: 'message', idx: 1313231, name: '%E3%85%81%E3%84%B4%E3%85%87%E3%85%81', message: 'hello'}

https://i.stack.imgur.com/vMur3.png

  1. Del mismo modo, la lista de bloqueo también se recibe en forma de matriz de objetos desde el servidor.

idx es el objetivo idx del usuario está bloqueado idx

 blockList [{…}] > 0: {idx: 1321, target: 2231, timestamp: 1644561250499} length: 1 [[Prototype]]: Array(0)

https://i.stack.imgur.com/eLnYQ.png

Así que quiero filtrar ese mensaje si blockList.target !== enterMsg.idx pero no funciona, así que probé algunas formas de hacerlo

 const blockMap = blockList.map((el) => el.target) const filterdMessage = () => {enterMsg.filter((msg)=> { const realfiltered = enterMsg.filter((el) => { blockMap.map((bl) => { return el.idx !== bl }) }) })};

pero es una matriz vacía ¿Cómo puedo solucionarlo?

about 4 years ago · Juan Pablo Isaza
1 Respuestas
Responde la pregunta

0

Diría que hay un malentendido de las funciones de matriz: tal vez debería consultar los documentos;)

https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Array/filter https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects /matriz/mapa

Luego, desea filtrar una matriz (la lista de mensajes) y la función de filtro debe devolver un valor booleano, por lo que probablemente desee algo así:

 const filterdMessage = enterMsg.filter((msg)=> { return !blockList.some((bl) => { return msg.idx === bl.target }) })

Lo que hacemos aquí es:

  • decirle que queremos filtrar la matriz enterMsg en función de una condición que se calculará en la devolución de llamada proporcionada
  • para cada mensaje, compruebe si ninguna entrada en la lista de bloqueo tiene un objetivo que coincida con su idx

usamos la función 'some' que devolverá verdadero si se encuentra un bloque coincidente, y dado que no queremos bloques coincidentes, negamos la condición

about 4 years ago · Juan Pablo Isaza Denunciar
Responde la pregunta
Encuentra empleos remotos

¡Descubre la nueva forma de encontrar empleo!

Top de empleos
Top categorías de empleo
Empresas
Publicar vacante Precios Comercial
Legal
Términos y condiciones Política de privacidad
© 2026 PeakU Inc. All Rights Reserved.
Andres GPT
Recomiéndame algunas ofertas
Necesito ayuda