如果对象的键存在于包含键的数组中,则删除对象的属性?

时间:2019-03-02 13:07:53

标签: javascript

我有一个键数组,可以作为对象的属性存在,如果存在的话,我想删除其上的那些属性,我知道删除对象上的单个道具是这样的:

  const { 'removedPropOnObj', ...newObj } = obj;

newObj在这里成为具有removePropOnObj的remove属性的新对象,我想做类似的事情,但是在这种情况下,我的键数组是:

['removeKey1','removeKey2','removeKey3']

帮助?

1 个答案:

答案 0 :(得分:1)

您可以使用Object.keysreduce()

let rmKeys =['removeKey1','removeKey2','removeKey3']
let obj = {
    removeKey1:1,
    removeKey2:2,
    removeKey3:3,
    removeKey4:4,
    removeKey5:5
}
let newObj = Object.keys(obj).reduce((ac,a) => !rmKeys.includes(a) ?({...ac,[a]:obj[a]}) : ac,{})
console.log(newObj);