Cómo filtrar un objeto de un objeto grande en función de cierto valor de una de las propiedades.
defaultSettings = { 'header1': { key: '00_02', element: { 'test1': '', }, elementName: 'footer' }, 'enabled': {}, 'header2': [ { key: '', value: { msg1: {}, msg2: 'message2', }, elementName: 'unwanted-element1' } ], 'header3': { info: '', headline: '' }, }; Quiero eliminar el objeto donde elementName: 'unwanted-element1' de defaultSettings
estoy intentando algo como
for (let key of Object.keys(defaultSettings)) { if(key === 'header2'){ if(key['elementName'] == 'unwanted-element1' ){ //delete that particular object. } } } console.log(defaultSettings);Salida esperada:
{ 'header1': { key: '00_02', element: { 'test1': '', }, elementName: 'footer' }, 'enabled': {}, 'header2': [], 'header3': { info: '', headline: '' }, }Amablemente sugiera un mejor enfoque para lograr esto.
defaultSettings['header2'] = defaultSettings['header2'].filter(prop => prop.elementName != 'unwanted-element1'); Así que aquí estoy filtrando el header2 al no incluir el elemento unwanted-element1 y asignar el resultado a la defaultSettings nuevamente.