recursive-omit-by Deletes keys from the object that match a condition without side effects. Installation npm instal --save-dev recursive-omit-by Usage import recursiveOmitBy from 'recursive-omit-by'; recursiveOmitBy( { text: 'hello', foo: { node1: true, node2: false, list: [ { more: 'hello', foo: 1 } ], string: 'hello', value: 1, }, }, ({ parent, node, key, path, deep }) => key === 'value' || node === 'hello');// returns new object without modifying original// {// foo: {// node1: true,// node2: false,// list: [// { foo: 1 }// ],// },// } License ISC