Skip to content
  • Home
  • Aktuell
  • Tags
  • 0 Ungelesen 0
  • Kategorien
  • Unreplied
  • Beliebt
  • GitHub
  • Docu
  • Hilfe
Skins
  • Light
  • Brite
  • Cerulean
  • Cosmo
  • Flatly
  • Journal
  • Litera
  • Lumen
  • Lux
  • Materia
  • Minty
  • Morph
  • Pulse
  • Sandstone
  • Simplex
  • Sketchy
  • Spacelab
  • United
  • Yeti
  • Zephyr
  • Dark
  • Cyborg
  • Darkly
  • Quartz
  • Slate
  • Solar
  • Superhero
  • Vapor

  • Standard: (Kein Skin)
  • Kein Skin
Einklappen
ioBroker Logo

Community Forum

donate donate
  1. ioBroker Community Home
  2. Deutsch
  3. Skripten / Logik
  4. JavaScript
  5. [gelöst] Sortieren eines Arrays

NEWS

  • Jahresrückblick 2025 – unser neuer Blogbeitrag ist online! ✨
    BluefoxB
    Bluefox
    16
    1
    1.5k

  • Neuer Blogbeitrag: Monatsrückblick - Dezember 2025 🎄
    BluefoxB
    Bluefox
    13
    1
    845

  • Weihnachtsangebot 2025! 🎄
    BluefoxB
    Bluefox
    25
    1
    2.1k

[gelöst] Sortieren eines Arrays

Geplant Angeheftet Gesperrt Verschoben JavaScript
javascript
3 Beiträge 2 Kommentatoren 189 Aufrufe 1 Watching
  • Älteste zuerst
  • Neuste zuerst
  • Meiste Stimmen
Antworten
  • In einem neuen Thema antworten
Anmelden zum Antworten
Dieses Thema wurde gelöscht. Nur Nutzer mit entsprechenden Rechten können es sehen.
  • a200A Offline
    a200A Offline
    a200
    schrieb am zuletzt editiert von a200
    #1

    Hallo,

    habe Probleme mein Array aus Objekten zu sortieren. Da tage.von ein String sind versuche ich es auf diese Art und Weise.

    var tage = [{"feiertag":"a","von":"18.02.2022", "bis":"19.02.2022"},{"feiertag":"b","von":"27.05.2021","bis":"28.05.2021"}];
    tage.sort(
       function(a, b) {          
          if (a.von === b.von) {
             return ('' + a.bis).localeCompare(b.bis);
          }
          return ('' + a.von).localeCompare(b.von);
       }
    );
    

    Leider wird 18 vor 19 einsortiert. Beispiele:

    14:03:35.545	info	javascript.0 (19539) script.js.DEV.Webunits.Webuntis-3: vergleiche: 21.02.2022 mit 23.12.2021 -> -1
    14:03:35.545	info	javascript.0 (19539) script.js.DEV.Webunits.Webuntis-3: vergleiche: 21.02.2022 mit 23.12.2021 -> -1
    14:03:35.546	info	javascript.0 (19539) script.js.DEV.Webunits.Webuntis-3: vergleiche: 21.02.2022 mit 11.10.2021 -> 1
    14:03:35.546	info	javascript.0 (19539) script.js.DEV.Webunits.Webuntis-3: vergleiche: 28.02.2022 mit 21.02.2022 -> 1
    14:03:35.546	info	javascript.0 (19539) script.js.DEV.Webunits.Webuntis-3: vergleiche: 28.02.2022 mit 23.12.2021 -> 1
    14:03:35.546	info	javascript.0 (19539) script.js.DEV.Webunits.Webuntis-3: vergleiche: 11.04.2022 mit 23.12.2021 -> -1
    14:03:35.546	info	javascript.0 (19539) script.js.DEV.Webunits.Webuntis-3: vergleiche: 11.04.2022 mit 21.02.2022 -> -1
    14:03:35.546	info	javascript.0 (19539) script.js.DEV.Webunits.Webuntis-3: vergleiche: 11.04.2022 mit 11.10.2021 -> -1
    14:03:35.546	info	javascript.0 (19539) script.js.DEV.Webunits.Webuntis-3: vergleiche: 27.05.2022 mit 21.02.2022 -> 1
    14:03:35.546	info	javascript.0 (19539) script.js.DEV.Webunits.Webuntis-3: vergleiche: 27.05.2022 mit 28.02.2022 -> -1
    14:03:35.546	info	javascript.0 (19539) script.js.DEV.Webunits.Webuntis-3: vergleiche: 27.05.2022 mit 23.12.2021 -> 1
    14:03:35.546	info	javascript.0 (19539) script.js.DEV.Webunits.Webuntis-3: vergleiche: 17.06.2022 mit 23.12.2021 -> -1
    14:03:35.546	info	javascript.0 (19539) script.js.DEV.Webunits.Webuntis-3: vergleiche: 17.06.2022 mit 11.10.2021 -> 1
    14:03:35.546	info	javascript.0 (19539) script.js.DEV.Webunits.Webuntis-3: vergleiche: 17.06.2022 mit 21.02.2022 -> -1
    14:03:35.546	info	javascript.0 (19539) script.js.DEV.Webunits.Webuntis-3: vergleiche: 03.10.2021 mit 21.02.2022 -> -1
    14:03:35.546	info	javascript.0 (19539) script.js.DEV.Webunits.Webuntis-3: vergleiche: 03.10.2021 mit 11.10.2021 -> -1
    14:03:35.546	info	javascript.0 (19539) script.js.DEV.Webunits.Webuntis-3: vergleiche: 03.10.2021 mit 11.04.2022 -> -1
    14:03:35.546	info	javascript.0 (19539) script.js.DEV.Webunits.Webuntis-3: vergleiche: 01.11.2021 mit 21.02.2022 -> -1
    14:03:35.547	info	javascript.0 (19539) script.js.DEV.Webunits.Webuntis-3: vergleiche: 01.11.2021 mit 11.10.2021 -> -1
    14:03:35.547	info	javascript.0 (19539) script.js.DEV.Webunits.Webuntis-3: vergleiche: 01.11.2021 mit 11.04.2022 -> -1
    14:03:35.547	info	javascript.0 (19539) script.js.DEV.Webunits.Webuntis-3: vergleiche: 01.11.2021 mit 03.10.2021 -> -1
    

    Habe auch versucht mit a.von.toString und b.von.toString zu vergleichen, aber das klappt auch nicht.

    Was mache ich falsch, bzw. wie kann ich die Sortierung als Strings erzwingen?

    IoBroker auf QNAP TS-451, Raspi und NUC

    paul53P 1 Antwort Letzte Antwort
    0
    • a200A a200

      Hallo,

      habe Probleme mein Array aus Objekten zu sortieren. Da tage.von ein String sind versuche ich es auf diese Art und Weise.

      var tage = [{"feiertag":"a","von":"18.02.2022", "bis":"19.02.2022"},{"feiertag":"b","von":"27.05.2021","bis":"28.05.2021"}];
      tage.sort(
         function(a, b) {          
            if (a.von === b.von) {
               return ('' + a.bis).localeCompare(b.bis);
            }
            return ('' + a.von).localeCompare(b.von);
         }
      );
      

      Leider wird 18 vor 19 einsortiert. Beispiele:

      14:03:35.545	info	javascript.0 (19539) script.js.DEV.Webunits.Webuntis-3: vergleiche: 21.02.2022 mit 23.12.2021 -> -1
      14:03:35.545	info	javascript.0 (19539) script.js.DEV.Webunits.Webuntis-3: vergleiche: 21.02.2022 mit 23.12.2021 -> -1
      14:03:35.546	info	javascript.0 (19539) script.js.DEV.Webunits.Webuntis-3: vergleiche: 21.02.2022 mit 11.10.2021 -> 1
      14:03:35.546	info	javascript.0 (19539) script.js.DEV.Webunits.Webuntis-3: vergleiche: 28.02.2022 mit 21.02.2022 -> 1
      14:03:35.546	info	javascript.0 (19539) script.js.DEV.Webunits.Webuntis-3: vergleiche: 28.02.2022 mit 23.12.2021 -> 1
      14:03:35.546	info	javascript.0 (19539) script.js.DEV.Webunits.Webuntis-3: vergleiche: 11.04.2022 mit 23.12.2021 -> -1
      14:03:35.546	info	javascript.0 (19539) script.js.DEV.Webunits.Webuntis-3: vergleiche: 11.04.2022 mit 21.02.2022 -> -1
      14:03:35.546	info	javascript.0 (19539) script.js.DEV.Webunits.Webuntis-3: vergleiche: 11.04.2022 mit 11.10.2021 -> -1
      14:03:35.546	info	javascript.0 (19539) script.js.DEV.Webunits.Webuntis-3: vergleiche: 27.05.2022 mit 21.02.2022 -> 1
      14:03:35.546	info	javascript.0 (19539) script.js.DEV.Webunits.Webuntis-3: vergleiche: 27.05.2022 mit 28.02.2022 -> -1
      14:03:35.546	info	javascript.0 (19539) script.js.DEV.Webunits.Webuntis-3: vergleiche: 27.05.2022 mit 23.12.2021 -> 1
      14:03:35.546	info	javascript.0 (19539) script.js.DEV.Webunits.Webuntis-3: vergleiche: 17.06.2022 mit 23.12.2021 -> -1
      14:03:35.546	info	javascript.0 (19539) script.js.DEV.Webunits.Webuntis-3: vergleiche: 17.06.2022 mit 11.10.2021 -> 1
      14:03:35.546	info	javascript.0 (19539) script.js.DEV.Webunits.Webuntis-3: vergleiche: 17.06.2022 mit 21.02.2022 -> -1
      14:03:35.546	info	javascript.0 (19539) script.js.DEV.Webunits.Webuntis-3: vergleiche: 03.10.2021 mit 21.02.2022 -> -1
      14:03:35.546	info	javascript.0 (19539) script.js.DEV.Webunits.Webuntis-3: vergleiche: 03.10.2021 mit 11.10.2021 -> -1
      14:03:35.546	info	javascript.0 (19539) script.js.DEV.Webunits.Webuntis-3: vergleiche: 03.10.2021 mit 11.04.2022 -> -1
      14:03:35.546	info	javascript.0 (19539) script.js.DEV.Webunits.Webuntis-3: vergleiche: 01.11.2021 mit 21.02.2022 -> -1
      14:03:35.547	info	javascript.0 (19539) script.js.DEV.Webunits.Webuntis-3: vergleiche: 01.11.2021 mit 11.10.2021 -> -1
      14:03:35.547	info	javascript.0 (19539) script.js.DEV.Webunits.Webuntis-3: vergleiche: 01.11.2021 mit 11.04.2022 -> -1
      14:03:35.547	info	javascript.0 (19539) script.js.DEV.Webunits.Webuntis-3: vergleiche: 01.11.2021 mit 03.10.2021 -> -1
      

      Habe auch versucht mit a.von.toString und b.von.toString zu vergleichen, aber das klappt auch nicht.

      Was mache ich falsch, bzw. wie kann ich die Sortierung als Strings erzwingen?

      paul53P Offline
      paul53P Offline
      paul53
      schrieb am zuletzt editiert von paul53
      #2

      @a200
      Strings können nur verglichen / sortiert werden, wenn der höherwertige Teil (das Jahr) vorn steht, z.B. "JJJJMMTT".

      Übergebe das Datum über eine Funktion an den Vergleich.

      function drehen(datum) {
          datum = datum.split('.');
          return datum[2] + datum [1] + datum[0];
      }
      

      Bitte verzichtet auf Chat-Nachrichten, denn die Handhabung ist grauenhaft !
      Produktiv: RPi 2 mit S.USV, HM-MOD-RPI und SLC-USB-Stick mit root fs

      a200A 1 Antwort Letzte Antwort
      1
      • paul53P paul53

        @a200
        Strings können nur verglichen / sortiert werden, wenn der höherwertige Teil (das Jahr) vorn steht, z.B. "JJJJMMTT".

        Übergebe das Datum über eine Funktion an den Vergleich.

        function drehen(datum) {
            datum = datum.split('.');
            return datum[2] + datum [1] + datum[0];
        }
        
        a200A Offline
        a200A Offline
        a200
        schrieb am zuletzt editiert von a200
        #3

        @paul53 und wie würdest du mein Problem lösen? In date umwandeln und als date vergleichen? Was wäre die feine und smarte Lösung? Hast du in der Zwischenzeit erledigt! Danke.

        Funktioniert bestens! Danke!

        IoBroker auf QNAP TS-451, Raspi und NUC

        1 Antwort Letzte Antwort
        0
        Antworten
        • In einem neuen Thema antworten
        Anmelden zum Antworten
        • Älteste zuerst
        • Neuste zuerst
        • Meiste Stimmen


        Support us

        ioBroker
        Community Adapters
        Donate

        572

        Online

        32.6k

        Benutzer

        82.1k

        Themen

        1.3m

        Beiträge
        Community
        Impressum | Datenschutz-Bestimmungen | Nutzungsbedingungen | Einwilligungseinstellungen
        ioBroker Community 2014-2025
        logo
        • Anmelden

        • Du hast noch kein Konto? Registrieren

        • Anmelden oder registrieren, um zu suchen
        • Erster Beitrag
          Letzter Beitrag
        0
        • Home
        • Aktuell
        • Tags
        • Ungelesen 0
        • Kategorien
        • Unreplied
        • Beliebt
        • GitHub
        • Docu
        • Hilfe