Creé este fragmento para comprender el problema.
Estoy intentando con un filtro excluir de una matriz todos los elementos que tienen 2 claves específicas como value === 'True' y team === 'Avengers' .
characters.filter(character => character.team !== 'Avengers' && character.value !== 'True');Mi objetivo es ver como resultado el siguiente Objeto
[{ name: "Flash", team: "Justice League", value: "False" }, { name: "Deadpool", team: "X-Force", value: "False" }] Como puede ver, no debería ver ningún elemento que tenga el value === 'True' y también todos los elementos que tienen el team === 'Avengers'
Pero a partir de los violines, ves que tengo un resultado incorrecto y no sé cómo solucionarlo, ya que hay 2 elementos que deben excluirse porque tienen un value === true pero no son como se ve a continuación.
[{ name: "Flash", team: "Justice League", value: "False" }, { name: "Deadpool", team: "X-Force", value: "False" }, { name: "Deadpool", team: "X-Force", value: "true" }, { name: "Deadpool", team: "X-Force", value: "true" }]La comparación de cadenas distingue entre mayúsculas y minúsculas: una cadena que es igual a 'True' no es una cadena que es igual a 'true' .
Puede solucionar esto incluyendo ambos en su condición de filtro:
character.team !== 'Avengers' && character.value !== 'True' && character.value !== 'true'
o (lo que probablemente haría ya que es más duradero) convertir la cadena a mayúsculas antes de comparar para una comparación que no distingue entre mayúsculas y minúsculas:
character.team.toUpperCase() !== 'AVENGERS' && character.value.toUpperCase() !== 'TRUE'