我想找到获得两个对象的相同部分的最佳实践
const firstObject = { a: 1, b: 2, c: 3}
const secondObject = { 1, 2 }
// desired result: { a: 1, b: 2} or simply { a, b }
在我看来,我们需要做三个步骤:
1)获取每个对象的所有值
Object.values = Object.values || (obj => Object.keys(obj).map(key => obj[key]))
2)从两个数组值中找到相同的部分
3)从firstObject
还有其他方法吗?
答案 0 :(得分:1)
使用Object#entries(或polyfill)将firstObject
分成[key, value]
对,并使用Array#reduce组合secondObject
中存在的所有内容。
const firstObject = { a: 1, b: 2, c: 3}
const secondObject = { 1: 1, 2: 2 };
const result = Object.entries(firstObject).reduce((obj, [key, value]) => {
value in secondObject && (obj[key] = value);
return obj;
}, {})
console.log(result);

答案 1 :(得分:0)
Object.keys(firstObject).filter(key=> key in secondObject).reduce((o,k)=>(o[k]=firstObject[k],o),{});