Recibo una matriz 2d y, a veces, obtengo un "error" y un "mensaje" para ese objeto en particular. El problema con el que sigo enfrentándome es que los mensajes que recibo varían... ¿Cómo hago si se menciona la tecla "error" y luego elimino el objeto por completo?
Mi matriz:
let filtData = [ [ { descriptions: { attrs: { lang: "en-GB", }, }, }, { descriptions: { attrs: { lang: "es", }, }, }, { error: {}, message: "Cannot read property 'attrs' of undefined" }, ], [ { descriptions: { attrs: { lang: "sp", }, }, }, { descriptions: { attrs: { lang: "en-GB", }, }, }, { descriptions: { attrs: { lang: "it", }, }, }, ], [ { descriptions: { attrs: { lang: "en", }, }, }, { descriptions: { attrs: { lang: "uk", }, }, }, { descriptions: { attrs: { lang: "en-GB", }, }, }, ], ];Filtro Js: esto solo funciona cuando conozco los mensajes
let objectToBeRemove = [{ error: {}, message: "Cannot read property 'attrs' of undefined" }]; filtData = filtData.filter((obj) => objectToBeRemove.some((objToRemove) => JSON.stringify(objToRemove) !== JSON.stringify(obj)));Verifique que cada uno de los elementos en el .every carezca de una propiedad de error .
const input=[[{descriptions:{attrs:{lang:"en-GB"}}},{descriptions:{attrs:{lang:"es"}}},{error:{},message:"Cannot read property 'attrs' of undefined"}],[{descriptions:{attrs:{lang:"sp"}}},{descriptions:{attrs:{lang:"en-GB"}}},{descriptions:{attrs:{lang:"it"}}}],[{descriptions:{attrs:{lang:"en"}}},{descriptions:{attrs:{lang:"uk"}}},{descriptions:{attrs:{lang:"en-GB"}}}]]; const filtered = input.filter( subarr => subarr.every(obj => !obj.hasOwnProperty('error')) ); console.log(filtered);