You can use reduce to get a new object:
const newObject = Object.keys(obj).reduce((newObj, key) => {
if (!obj[key].filter1) {
newObj[key] = obj[key];
}
return newObj;
}, {});
const obj = {
0: {
'filter1': {
'key1': {
'email1': 'email1'
}
}
},
1: {
'filter1': {
'key12': {
'email12': 'email12'
}
}
},
2: {
'filter2': {
'key2': {
'email2': 'email2'
}
}
}
};
const newObject = Object.keys(obj).reduce((newObj, key) => {
if (!obj[key].filter1) {
newObj[key] = obj[key];
}
return newObj;
}, {});
console.log(newObject);
Or as @zerkms said, using entries:
const entries = Object.entries(obj).reduce((newObj, [key, val]) => {
if (val.filter1) {
return newObj;
}
return {
...newObj,
[key]: val,
}
}, {});
const obj = {
0: {
'filter1': {
'key1': {
'email1': 'email1'
}
}
},
1: {
'filter1': {
'key12': {
'email12': 'email12'
}
}
},
2: {
'filter2': {
'key2': {
'email2': 'email2'
}
}
}
};
const newObject = Object.entries(obj).reduce((newObj, [key, val]) => {
if (val.filter1) {
return newObj;
}
return {
...newObj,
[key]: val,
}
}, {});
console.log(newObject);
{ 2: { filter2: { ... } } }