我有一些对象属性需要在某些时候删除,但我仍然需要其他属性,所以我不能只写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 函数可以一次清除多个属性?
目前还没有本地函数可以做到这一点;但你总是可以循环并delete
:
const obj = {
prop1: 'foo',
prop2: 'bar',
prop3: 'baz'
}
;[ 'prop1', 'prop2' ].forEach(prop => delete obj[prop])
console.log(obj)
...找到了 _.omit lodash 函数,但我不想最终只是为了一个函数而下载整个库。
只需将相同的概念抽象为一个函数并重用它即可:
const obj = {
prop1: 'foo',
prop2: 'bar',
prop3: 'baz'
}
const filterKeys = (obj, keys = []) => {
// NOTE: Clone object to avoid mutating original!
obj = JSON.parse(JSON.stringify(obj))
keys.forEach(key => delete obj[key])
return obj
}
const result1 = filterKeys(obj, ['prop1', 'prop2'])
const result2 = filterKeys(obj, ['prop2'])
console.log(result1)
console.log(result2)
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)