Ergebnis 1 bis 5 von 5
Like Tree1Likes
  • 1 Post By Kerockx

Thema: (Advanced) Filter Array mit Objekten

  1. #1
    Kerockx ist offline Grünschnabel
    registriert
    05-08-2020
    Beiträge
    3

    (Advanced) Filter Array mit Objekten

    Hallo zusammen,

    zunächst erst einmal vielen Dank für dieses tolle Forum!

    Ich möchte zwei Arrays mit Objekten miteinander vergleichen und nur diejenigen Objekte zurückgeben, die in einem Value (ebenfalls ein Array) mind. alle Werte aus den Objekten des anderen Arrays haben.

    Hier ein Beispiel zur Veranschaulichung:

    Code:
    const arr1 = [
        { id: 1, values: [1]},
        { id: 2, values: [2]},
        { id: 3, values: [1,2]},
        { id: 4, values: [1,2,3]},
      ];
      
      const arr2 = [
        { id: 1, values: [1]},
        { id: 2, values: [2]}
      ];
    
    //gewünschter Output => [{ id: 3, values: [1,2]}, { id: 4, values: [1,2,3]}]
    Bei der Lösung spielt die Performance eine wesentliche Rolle, da in dem ersten Array mehrere 100 Objekte sein können.

    Mit der .filter Methode habe ich bereits gearbeitet. In diesem speziellen Fall, komme ich damit aber nicht weiter.

    Ich hoffe ihr könnt mir dabei helfen.

    Ich sitze an einem React Native Projekt. Vielleicht kennt ihr auch eine Libary, die dies für mich erledigen kann.

    Vielen Dank
    Kerockx
    Geändert von mikdoe (08-08-2020 um 08:03 Uhr) Grund: Code Tags; Gelöst

  2. #2
    Avatar von mikdoe
    mikdoe ist offline Administrator
    registriert
    01-05-2010
    Beiträge
    7.779

    AW: (Advanced) Filter Array mit Objekten

    Vorschlag: das zweite Array in ein temporäres Hash of Arrays (ich meine damit ein JS "Object") kopieren mit den values als keys und den id's als values in Array Format. Dann durch array 1 iterieren und einfach auf defined im Hash abfragen.
    Das deutsche Javascript Forum http://forum.jswelt.de http://forum.jswelt.de/images/logoJsWeltForumV4_32x22.png

  3. #3
    Kerockx ist offline Grünschnabel
    registriert
    05-08-2020
    Beiträge
    3

    AW: (Advanced) Filter Array mit Objekten

    Hallo mikdoe,

    vielen Dank für deine Antwort!

    Ich konnte das Problem mit Hilfe deiner Antwort lösen:

    Code:
    const arr1 = [
        { id: 1, values: [1]},
        { id: 2, values: [2]},
        { id: 3, values: [1,2]},
        { id: 4, values: [1,2,3]},
      ];
      
      const arr2 = [
        { id: 1, values: [1]},
        { id: 2, values: [2]}
      ];
    
      const tmpArray = []
      
      arr2.map((item) => {
        tmpArray.push(...item.values)
      });
    
      const result = [];
    
      arr1.map((item) => {
        if(tmpArray.every(element => item.values.includes(element))){
          result.push(item)
        }
      });
    
      console.log(result) 
      // => [{ id: 3, values: [1,2]}, { id: 4, values: [1,2,3]}]
    Allerdings erscheint mir dein Text eleganter als mein Code.
    Magst du den Code vielleicht deinem Vorschlag entsprechend anpassen?

    Vielen Dank
    Kerockx

  4. #4
    Avatar von mikdoe
    mikdoe ist offline Administrator
    registriert
    01-05-2010
    Beiträge
    7.779

    AW: (Advanced) Filter Array mit Objekten

    Zitat Zitat von Kerockx Beitrag anzeigen
    vielen Dank für deine Antwort!
    Sehr gern.

    Zitat Zitat von Kerockx Beitrag anzeigen
    Allerdings erscheint mir dein Text eleganter als mein Code.
    Das sehe ich genau anders herum. Bin erstaunt über diese Syntax. Ich hätte nur sperrige Schleifen benutzt. Deines finde ich doch viel übersichtlicher.
    Das deutsche Javascript Forum http://forum.jswelt.de http://forum.jswelt.de/images/logoJsWeltForumV4_32x22.png

  5. #5
    Kerockx ist offline Grünschnabel
    registriert
    05-08-2020
    Beiträge
    3

    AW: (Advanced) Filter Array mit Objekten

    Zitat Zitat von mikdoe Beitrag anzeigen
    Das sehe ich genau anders herum. Bin erstaunt über diese Syntax. Ich hätte nur sperrige Schleifen benutzt. Deines finde ich doch viel übersichtlicher.
    Ohh, dann war das wohl ein Glücksgriff

    CLOSED
    mikdoe likes this.

Ähnliche Themen

  1. array aus objekten als javascript code ausgeben
    Von nimbus im Forum JavaScript
    Antworten: 4
    Letzter Beitrag: 03-07-2014, 08:17
  2. [FRAGE] Hilfe bei zeichnen auf Canvas mit Array Objekten.
    Von Dantalion im Forum JavaScript
    Antworten: 3
    Letzter Beitrag: 24-06-2014, 23:55
  3. Probleme mit Objekten
    Von hupfer im Forum JavaScript
    Antworten: 1
    Letzter Beitrag: 13-09-2004, 14:42
  4. Suchen und Ersetzen Advanced
    Von kasimir83 im Forum Allgemeines
    Antworten: 16
    Letzter Beitrag: 01-06-2004, 16:37
  5. style="filter:FlipH()"----style="filter:FlipV()"
    Von womstar im Forum JavaScript
    Antworten: 2
    Letzter Beitrag: 25-07-2002, 15:07

Stichworte

Lesezeichen

Berechtigungen

  • Neue Themen erstellen: Nein
  • Themen beantworten: Nein
  • Anhänge hochladen: Nein
  • Beiträge bearbeiten: Nein
  •