Estoy tratando de filtrar una matriz y eliminar las entradas que contienen ciertas propiedades. Por ejemplo, mi matriz se ve así:
const items = [{a: "apple", b: "banana", c: "coconut"}, {a: "apple"}, {b: "banana, c: "coconut"}];Y quiero filtrar los elementos que tienen las propiedades b o c.
Ahora mismo tengo:
items.filter(item => "b" in item || "c" in item);pero siento que hay una mejor manera de hacer esto, y configurarlo para que se puedan agregar fácilmente muchas más propiedades en el futuro.
Coloque los nombres de las propiedades en una matriz y use .some() para probar si existe alguna de esas propiedades.
const items = [{ a: "apple", b: "banana", c: "coconut" }, { a: "apple" }, { b: "banana", c: "coconut" }]; let properties_to_filter = ["b", "c"] let result = items.filter(item => properties_to_filter.some(prop => prop in item)); console.log(result); const items = [{a: "apple", b: "banana", c: "coconut"}, {a: "apple"}, {b: "banana", c: "coconut"}] let filtredKey = ["a"] let result = [] items.map(el => { if(el.hasOwnProperty("c")) result.push(el) }) console.log(result)