Is there a clean way to return a new object that omits certain properties that the original object contains without having to use something like lodash?
You can use Object.assign(), delete
var not = ["a", "b"]; // properties to delete from obj object var o = Object.assign({}, obj); for (let n of not) delete o[n];
Alternatively
var props = ["c", "d"]; let o = Object.assign({}, ...props.map(prop => ({[prop]:obj[prop]})));