Estoy tratando de encontrar la mejor manera de filtrar mi matriz de objetos con una cadena de clave específica. Básicamente, lo que estoy tratando de lograr es obtener los objetos que contienen "Type":"Blue" . Aquí están mis datos:
[ { "data": [ {} ], "Name": "1", "Type": "Blue" }, { "data": [ {} ], "Name": "2", "Type": "Red" }, { "data": [ {} ], "Name": "3", "Type": "Blue" } ]Podrías usar el método de filtro . Vea el fragmento a continuación, así como una definición del método de MDN:
El método
filter()crea una nueva matriz con todos los elementos que pasan la prueba implementada por la función proporcionada.
const data = [ { data: [{}], Name: "1", Type: "Blue" }, { data: [{}], Name: "2", Type: "Red" }, { data: [{}], Name: "3", Type: "Blue" } ]; const filteredData = data.filter((item) => item.Type === "Blue"); console.log(filteredData);Puede usar el método Array.prototype.filter() .
arr.filter(obj => obj.Type == 'Blue');le dará la matriz que contiene solo los objetos con tipo Azul.
Si entendí su requisito correctamente, tiene una cadena "Type: Blue" y, en función de esta cadena, debe filtrar la matriz de datos dinámicamente según la key como Tipo y el value como Azul. Si es así, aquí tienes :
const str = "Type: Blue"; const splittedStr = str.split(':'); const data = [ { Name: "1", Type: "Blue" }, { Name: "2", Type: "Red" }, { Name: "3", Type: "Blue" } ]; const filteredData = data.filter((item) => item[splittedStr[0]] === splittedStr[1].trim()); console.log(filteredData);