Я не думаю, что у lodash есть что-то встроенное для этого. Вы можете сделать это достаточно легко просто с JavaScript нативных функций, хотя:
var obj = {a: 1, b: 2, c: 3};
console.log(['a', 'b'].reduce(function(newObj, name) {
newObj[name] = obj[name];
delete obj[name];
return newObj;
}, {})); // {a: 1, b: 2}
console.log(obj) // {c: 3}
что-то более lodash-у, вы могли бы объединить _.pick
и _.omit
, но вы будете создавать новый объект а не удалять свойства из существующего (что может быть лучше в любом случае):
var obj = {a: 1, b: 2, c: 3};
console.log(_.pick(obj, ['a', 'b'])); // {a: 1, b: 2}
obj = _.omit(obj, ['a', 'b']);
console.log(obj) // {c: 3}
<script src="https://cdnjs.cloudflare.com/ajax/libs/lodash.js/4.17.4/lodash.min.js"></script>
99,99999% времени это не имеет значения, но только как FYI, когда вы используете delete
на объекте, на некоторых двигателях JavaScript, который помещает объект в режим неоптимизированном «словаря», где последующее имущество поиск намного медленнее, чем в оптимизированном объекте. (Добавление свойств объектов не делает этого, просто удалите их.) Опять же, как правило, это не имеет значения, но ...
Вам действительно нужны свойства * удалены * от исходного объекта? Это несколько странное требование. –