Melhor maneira de obter a interseção de chaves de dois objetos?
Eu tenho dois literais de objeto assim:
var firstObject =
{
x: 0,
y: 1,
z: 2,
a: 10,
b: 20,
e: 30
}
var secondObject =
{
x: 0,
y: 1,
z: 2,
a: 10,
c: 20,
d: 30
}
Eu quero obter a interseção das chaves que esses dois objetos literais têm assim:
var intersectionKeys = ['x', 'y', 'z', 'a']
Obviamente, posso fazer um loop e ver se existe uma chave com o mesmo nome no outro objeto, mas estou pensando se esse seria um bom caso para alguma programação funcional e mapear / filtrar / reduzir o uso? Eu mesmo não fiz tanta programação funcional, mas tenho a sensação de que poderia existir uma solução limpa e inteligente para esse problema.