ebody: key:value in Objekt finden

Beitrag lesen

problematische Seite

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