假设我有一个表示键的字符串数组,例如 ['a', 'b', 'd']
,以及一个现有对象,例如...
const obj = {
a: 1,
b: 2,
c: 3,
d: 4,
e: 5
}
有没有一种方法可以根据数组中的键创建一个新对象,该对象是 obj
的过滤版本,这样......
const updated = {
a: 1,
b: 2,
d: 4
}
使用 Object.assign()
函数?
我知道它适用于诸如...的功能
function createNew(o, keys) {
const updated = {}
Object.keys(o).forEach(k => {
if (keys.includes(k)) updated[k] = o[k]
})
return updated
}
但我正在寻找使用 Object.assign()
最佳答案
const obj = {
a: 1,
b: 2,
c: 3,
d: 4,
e: 5
};
const desiredKeys = ['a', 'c', 'd'];
const result = desiredKeys.reduce((acc, key) => {
acc[key] = obj[key];
return acc;
}, {});
console.log(result);
关于javascript - 根据过滤键创建新对象,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/42048344/