У меня есть два объекта литералов, как так:Лучший способ получить пересечение ключей двух объектов?
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']
я, очевидно, можно сделать петлю и посмотреть, если ключ с тем же именем существует в другом объекте, но мне интересно, будет ли это хорошим примером для некоторого функционального программирования и использования карты/фильтра/сокращения? Я сам не так много программировал, но у меня есть ощущение, что для этой проблемы может быть чистое и умное решение.
Lodash имеет [пересечение] (https://lodash.com/docs#intersection) как метод, если вы не были уже осведомлены , – Xotic750
@ Xotic750 Кажется, работает только с массивами? Опять же, существует много способов, как 'Object.keys' получить ключи в виде массива. – Piwwoli
Конечно, вам понадобятся ключи каждого объекта, как в ответах ниже, либо ['Object.keys'] (https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/ Global_Objects/Object/keys) или lodash имеет ['_.keys'] (https://lodash.com/docs#keys). '_.intersection (_. keys (firstObject), _.keys (secondObject));' – Xotic750