Hallo,
jedes key:value
paar aus searchKeyValuePair[]
soll in inThisObject{}
gesucht werden und jeder Erfolg mit true
gespeichert werden. Ich muss festhalten, wie oft es einen Treffer gab.
/** Prüfe jedes key:value paar... */
const searchKeyValuePair = [
{Title: 'Batman'},
{Genre: 'Science-Fiction'},
{Title: 'Prometheus'},
{Duration: 1},
{Title: 'Prometheus'},
];
/** ...ob es in dem Array vorkommt */
const inThisObject = {
Title: 'Prometheus',
Genre: 'Science-Fiction',
Tags: 'Weltall',
Duration: 2
};
Probiert habe ich schon sehr viel, siehe auskommentierten Code.. Das ist jetzt die aktuellste Version:
/**
Erzeugt ein Array aus searchKeyValuePair[] und aus jedem Objekt ein Array.
[
['Title', 'Batman'],
['Genre', 'Science-Fiction'],
['Title', 'Prometheus'],
...
]
*/
const arrSearchKeyValuePairs = searchKeyValuePair.map(searchItem => Object.entries(searchItem));
console.log('arrSearchKeyValuePairs: ', arrSearchKeyValuePairs);
/**
Erzeugt ein Array aus inThisObject[] und aus jedem key:value ein Array.
[
['Title', 'Prometheus'],
['Genre', 'Science-Fiction'],
['Tags', 'Weltall'],
['Duration', 2],
]
*/
const arrInThisObject = Object.entries(inThisObject);
console.log('arrInThisObject: ', arrInThisObject);
console.log('result: ', arrSearchKeyValuePairs.filter(item => arrInThisObject.some(item)));
Aber ich bekomme es einfach nicht hin. Hat jemand einen Tipp?
Gruß ebody