首页 > 解决方案 > 省略 javascript 中另一个数组中存在的对象中的键

问题描述

我有一个这样的对象-

const obj = {
   'a': 1,
   'b': 2,
   'c': 3,
   'd': 4,
   'e': 5
}

和一个包含属于该对象的键的数组,

const arr = ['a', 'b', 'd']

我想返回一个类似于但它不应该包含存在的键的对象,即,我想要一个对象objarr

const result = {
    'c': 3,
    'e': 5
}

如何通过 Javascript 实现这一目标?

标签: javascriptarraysobjectecmascript-6

解决方案


使用新Object.fromEntries的 ,很容易:

const result = Object.fromEntries(Object.entries(obj).filter(([k, _]) => !arr.includes(k)))

没有它,它需要更多的努力:

const result = Object.entries(obj).reduce((tot, [k, v]) => {
    if (!arr.includes(k)) {
        tot[k] = v;
    }
    return tot;
}, {})

推荐阅读