Ho due letterali oggetto in questo modo:Il modo migliore per ottenere l'intersezione delle chiavi di due oggetti?
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
}
voglio ottenere l'intersezione delle chiavi questi due letterali oggetto hanno in questo modo:
var intersectionKeys = ['x', 'y', 'z', 'a']
Io, ovviamente, posso fare un ciclo e vedere se una chiave con lo stesso nome esiste nell'altro oggetto, ma mi chiedo se questo sarebbe un buon caso per alcune programmazioni funzionali e mappa/filtro/ridurre l'utilizzo? Io stesso non ho fatto molta programmazione funzionale, ma ho la sensazione che possa esistere una soluzione pulita e intelligente per questo problema.
Lodash ha [intersezione] (https://lodash.com/docs#intersection) come metodo, se non erano già a conoscenza . – Xotic750
@ Xotic750 Sembra funzionare solo con gli array? Poi di nuovo, ci sono probabilmente molti modi come 'Object.keys' per ottenere le chiavi come una matrice. – Piwwoli
Certo, avrai bisogno delle chiavi di ogni oggetto, proprio come nelle risposte qui sotto, o ['Object.keys'] (https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/ Global_Objects/Object/keys) o lodash ha ['_.keys'] (https://lodash.com/docs#keys). '_.intersection (_. keys (firstObject), _.keys (secondObject));' – Xotic750