Лучший способ получить пересечение ключей двух объектов?

У меня есть два литерала объекта, например, так:

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
}

Я хочу получить пересечение ключей этих двух объектных литералов примерно так:

var intersectionKeys  = ['x', 'y', 'z', 'a']

Я, очевидно, могу сделать цикл и посмотреть, существует ли ключ с тем же именем в другом объекте, но мне интересно, будет ли это хорошим случаем для некоторого функционального программирования и использования map / filter / сокращение? Я сам не так много занимался программированием, но у меня есть ощущение, что для этой проблемы может существовать чистое и умное решение.

Ответы на вопрос(4)

Ваш ответ на вопрос