Monday, May 20, 2024
 Popular · Latest · Hot · Upcoming
-6
rated 0 times [  1] [ 7]  / answers: 1 / hits: 16649  / 7 Years ago, thu, july 20, 2017, 12:00:00

How can I remove all objects which contain filter1?



const obj = {
0: {
'filter1': {
'key1': {
'email1': 'email1'
}
}
},
1: {
'filter1': {
'key12': {
'email12': 'email12'
}
}
},
2: {
'filter2': {
'key2': {
'email2': 'email2'
}
}
}
}

More From » typescript

 Answers
9

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);




[#57025] Monday, July 17, 2017, 7 Years  [reply] [flag answer]
Only authorized users can answer the question. Please sign in first, or register a free account.
janjadonb

Total Points: 4
Total Questions: 114
Total Answers: 118

Location: Mali
Member since Fri, Dec 3, 2021
3 Years ago
janjadonb questions
;