Один вкладыш для удаления нескольких свойств объекта - PullRequest
0 голосов
/ 04 декабря 2018

У меня есть несколько свойств объекта, которые мне нужно удалить в определенный момент, но мне все еще нужны другие, поэтому я не могу просто написать delete vm.model;, чтобы удалить все из них.

На данный момент существует 5 свойствМне нужно удалить, но список, скорее всего, будет расти, поэтому я не хочу в конечном итоге.

delete vm.model.$$hashKey;
delete vm.model.expiryDate;
delete vm.model.sentDate;
delete vm.model.startDate;
delete vm.model.copied;

Я ищу один лайнер, который сделает это для меня.Я провел некоторое исследование и обнаружил функцию _.omit lodash, но я не хочу в конечном итоге загружать всю библиотеку только для одной функции.

Существует ли функция angularjs / js, которая удаляет сразу несколько свойств

Ответы [ 2 ]

0 голосов
/ 04 декабря 2018

Вы ничего не можете сделать, чтобы упростить его, вы можете использовать массив

["a","b","c"].forEach(k => delete vm.model[k])
0 голосов
/ 04 декабря 2018

Нет встроенной функции, которая делает это еще;но вы всегда можете просто зациклить и delete:

const obj = {
  prop1: 'foo',
  prop2: 'bar',
  prop3: 'baz'
}

;[ 'prop1', 'prop2' ].forEach(prop => {
  delete obj[prop]
})

console.log(obj.prop1, obj.prop2, obj.prop3)
    

... обнаружил функцию _.omit lodash, но я не хочу заканчивать загрузкой всей библиотеки только для одной функции.

Просто поместите вышеуказанный цикл в функцию, которую вы можете использовать повторно, например deleteKeys(obj, keys).

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...