Tengo una matriz llamada messages . Cuando envío un mensaje soy sender , cuando lo recibo soy receiver . Mi 'id' es '6003123'. ¿Cuál es la forma más fácil de recibir mensajes que sean sender , receiver y relacionados con mi id ? ¿Es adecuada la siguiente forma y el uso del método de filter ?
const messages = [ { _id: '610be2c', msg: { text: 'sdsdsdsdsd' }, sender: '608ffae', receiver: '6003123' **//myId** }, { _id: '610be2d', msg: { text: 'sdsdsdsdsdsdsdsdsdsdsd' }, sender: '6003123', **//myId** receiver: '608ffae' }, { _id: '610be2dert', msg: { text: 'sdsdsdsdsdsdsdsdsdsdsd' }, sender: '6003123', **//myId** receiver: '608ffae' }, { _id: '610be2dertrtyu', msg: { text: 'sdsdsdffgghghgh' }, sender: '3456', receiver: '098765' }, { _id: '610be2dertrtyu', msg: { text: 'sdsdsdffgghghgh' }, sender: '098765' receiver: '3456' } ] const myId = '6003123'; let messagesArray = messages.filter(message => message.sender === myId && message.receiver === myId) || message.sender === myId || message.receiver === myId));Pienso:
let messagesArray = messages.filter(message => message.sender === myId || message.receiver === myId));es lo que buscas
.filter() y solo uno || O operador const messages = [ { _id: "610be2c", msg: { text: "sdsdsdsdsd" }, sender: "608ffae", receiver: "6003123", }, { _id: "610be2d", msg: { text: 'sdsdsdsdsdsdsdsdsdsdsd' }, sender: "6003123", receiver: "608ffae" }, { _id: "610be2dert", msg: { text: "sdsdsdsdsdsdsdsdsdsdsd" }, sender: "6003123", receiver: "608ffae" }, { _id: "610be2dertrtyu", msg: { text: "sdsdsdffgghghgh" }, sender: "3456", receiver: "098765", }, { _id: "610be2dertrtyu", msg: { text: "sdsdsdffgghghgh" }, sender: "098765", receiver: "3456", } ]; const getMessagesWhereSenderReceiver = (id) => messages.filter(msg => { return msg.sender === id || msg.receiver === id; }); console.log(getMessagesWhereSenderReceiver("6003123"));