Mam dwa literały obiektowe tak:Najlepszy sposób na przecięcie się kluczy dwóch obiektów?
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
}
Chcę dostać się do skrzyżowania z klawiszy te dwa literały obiektowe mają tak:
var intersectionKeys = ['x', 'y', 'z', 'a']
oczywiście mogę zrobić pętlę i sprawdzić, czy klucz o tej samej nazwie istnieje w drugim obiekcie, ale zastanawiam się, czy byłby to dobry przypadek dla jakiegoś programowania funkcjonalnego i mapy/filtra/zmniejszenia użycia? Ja sam nie zrobiłem tak wiele programowania funkcjonalnego, ale mam wrażenie, że może istnieć czyste i sprytne rozwiązanie tego problemu.
Lodash ma przecięcie [] (https://lodash.com/docs#intersection) jako metoda, jeśli nie byli już świadomi . – Xotic750
@ Xotic750 Wydaje się działać tylko z tablicami? Z drugiej strony, prawdopodobnie istnieje wiele sposobów jak "Object.keys", aby uzyskać klucze jako tablicę. – Piwwoli
Oczywiście potrzebne będą klucze każdego obiektu, podobnie jak w poniższych odpowiedziach, ["Object.keys"] (https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/ Global_Objects/Object/keys) lub lodash ma ['_.keys'] (https://lodash.com/docs#keys). '_.intersection (_. keys (firstObject), _.keys (secondObject));' – Xotic750