var testObject = { address: { form: 1, status: "VALID" }, address2: {form: 1, status: "INVALID" }, address3: {form: 1, status: "INVALID" } } Object.keys(testObject) .filter(key => console.log(key))Lo que intento hacer aquí es filtrar los datos según el estado INVÁLIDO.
la salida del ejemplo debería ser así.
{ address2: { form: 1, status: "INVALID" }, address3: { form: 1, status: "INVALID" } }o
[ { address2: { form: 1, status: "INVALID" } }, { address3: { form: 1, status: "INVALID" } } ]Un trazador de líneas:
Object.fromEntries(Object.entries(testObject).filter(x => x[1].status === "INVALID"))Largo:
const objectConvertedToArray = Object.entries(testObject) const filteredArray = objectConvertedToArray.filter(([key, val] => val === "INVALID")) const filteredObject = Object.fromEntries(filteredArray)Recorra las entradas de Object.entries y agregue las propiedades que coincidan con un nuevo objeto.
var testObject = { address: { form: 1, status: "VALID" }, address2: { form: 1, status: "INVALID" }, address3: { form: 1, status: "INVALID" } } const out = {}; for (let [key, obj] of Object.entries(testObject)) { if (obj.status === 'INVALID') out[key] = obj; } console.log(out); Si desea una matriz, push el objeto a una matriz usando la tecla.
var testObject = { address: { form: 1, status: "VALID" }, address2: { form: 1, status: "INVALID" }, address3: { form: 1, status: "INVALID" } } const out = []; for (let [key, obj] of Object.entries(testObject)) { if (obj.status === 'INVALID') out.push({ [key]: obj }); } console.log(out);Esto debería funcionar sin cambiar el objeto original :
var testObject = { address: { form: 1, status: "VALID" }, address2: {form: 1, status: "INVALID" }, address3: {form: 1, status: "INVALID" } } var ouput = Object.keys(testObject).reduce((obj, element) => { if(testObject[element].status === 'INVALID') obj[element] = testObject[element] return obj }, {}) console.log(ouput)