Ergebnis 1 bis 3 von 3
  1. #1
    boesl ist offline Grünschnabel
    registriert
    31-05-2012
    Beiträge
    8

    Question 2 Arrays vergleichen und nur übereinstimmende Elemente behalten

    Hallo,

    da der Titel des Themas vielleicht nicht 100% erklärt was ich vorhabe, schildere ich es hier nochmals kurz:
    Ich bastle gerade an einer Seite, die Events, die von einem XML eingelesen werden anzeigt. Die Daten aus dem XML werden in JSON-Objekte (data2) gespeichert, diese sind auf der Seite verfügbar.
    So ein JSON-Objekt sieht so aus:

    Code:
    {
      "Beginnzeit": "21:00",
      "Beschreibung": "blabla",
      "lat": "xxx",
      "lon": "xxx",
      "name": "blabla,
      "location":"Disco XYZ",
       ...;
    }
    soweit, so gut. Nun habe ich eine Funktion, mit der ich mir verschiedene Lokale als Favorit setzen kann. Sinn dahinter ist, dass ich die Daten aus dem XML filtern kann und nur mehr die Lokale angezeigt bekomme, die ich in meinen Favoriten habe. Die Favoriten werden im localStorage des Browsers, ebenfalls als JSON abgespeichert.

    Also im localStorage habe ich schlussendlich ein Objekt, dass folgendermaßen aussieht:

    Code:
    {
       "id":"Disco XYZ"
    }
    nun möchte ich, dass die beiden miteinander verglichen werden und im JSON aus dem XML nur mehr diese übrig bleiben, die mit den Favoriten zusammen passen.
    Folgenden Code habe ich zur Zeit:

    PHP-Code:
        ////////////////////////////////////////////////////////////
        // data filtern - nur locations von localStorage anzeigen //
        ////////////////////////////////////////////////////////////

        
    var uebereinstimmung 0;
        var 
    keineuebereinstimmung 0;

        var 
    favoriteLocations JSON.parse(localStorage.getItem("orte"));
        
        if(
    favoriteLocations != null){
            for (var 
    x in data2){
                var 
    locationFromData data2[x].location;

                
    //console.log("data: "+singleLocation);

                
    for (0favoriteLocations.length;y++){
                    var 
    locationFromFavorites favoriteLocations[y].ID;

                    if (
    locationFromFavorites == locationFromData){
                        
    console.log("Übereinstimmung: "+locationFromFavorites+" "+locationFromData);
                        
    uebereinstimmung++;
                        
                    } else {
                        
    keineuebereinstimmung++;
                        
                    }
                }
            }

            
    console.log("Übereinstimmung "+uebereinstimmung);
            
    console.log("keine Übereinstimmung "+keineuebereinstimmung);
        } 
    es funktioniert soweit, dass mir alle Übereinstimmungen angezeigt werden. Ich habe hier zB 20 Objekte in data2, der Output ist folgender:
    5x Übereinstimmung
    95x keine Übereinstimmung

    dh mit meinen Schleifen läuft das ganze insgesamt 100x durch (also 20 Objekte von data2 mal 5 Objekte vom localStorage). Aber wie schaffe ich es jetzt nun, nur die Übereinstimmungen zu behalten und den Rest aus dem Array zu löschen?

  2. #2
    ein schlauer ist offline Lounge-Member
    registriert
    18-08-2004
    Beiträge
    14.671

    AW: 2 Arrays vergleichen und nur übereinstimmende Elemente behalten

    Du hast kein Array, das ist ein Objekt. Einzelne Eigenschaften kannst du mit delete löschen

  3. #3
    Avatar von kkapsner
    kkapsner ist offline Super Moderator
    registriert
    28-03-2008
    Beiträge
    17.695

    AW: 2 Arrays vergleichen und nur übereinstimmende Elemente behalten

    y solltest du auch zu einer lokalen Variable machen, da das sonst Probleme bereiten kann.
    willst du in data2 oder in favoriteLocations löschen?
    Wie genau ist data2 aufgebaut - du hast uns nur ein Element gezeigt.

    PS: eine for...in -Schleife sollte man mit einem .hasOwnProperty absichern.

Ähnliche Themen

  1. Felder vergleichen - Arrays
    Von gecko im Forum JavaScript
    Antworten: 4
    Letzter Beitrag: 10-08-2010, 12:16
  2. Einstellungen behalten nach Seitenwechsel
    Von WilliT im Forum JavaScript
    Antworten: 2
    Letzter Beitrag: 13-11-2009, 16:53
  3. Eigenschaften der Elemente eines Arrays auslesen???
    Von Beginner37 im Forum JavaScript
    Antworten: 3
    Letzter Beitrag: 20-04-2009, 16:36
  4. Arrays über Arrays abfragen
    Von daRokk im Forum JavaScript
    Antworten: 1
    Letzter Beitrag: 14-12-2004, 19:51
  5. formulardaten behalten
    Von asiengarten im Forum JavaScript
    Antworten: 8
    Letzter Beitrag: 28-10-2002, 22:43

Lesezeichen

Berechtigungen

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