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. findindex

NEWS

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

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

  • Weihnachtsangebot 2025! 🎄
    BluefoxB
    Bluefox
    25
    1
    2.2k

findindex

Geplant Angeheftet Gesperrt Verschoben Skripten / Logik
javascript
6 Beiträge 5 Kommentatoren 485 Aufrufe 4 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.
  • tcjT Offline
    tcjT Offline
    tcj
    schrieb am zuletzt editiert von
    #1

    Moin,

    ich habe folgendes Array (Beispiel)

    const sensors = {
        "devices": [
            {
                "name": "tuer123",
                "code": "123"
            },
            {
                "name": "tuer456",
                "code": "456"
            },
            {
                "name": "tuer789",
                "code": "789"
            }        
        ]};
    

    Daraus möchte ich jetzt den Index des Eintrages ermitteln, der einen bestimmten suchcode hat.
    Also in etwa so (was aber nicht funktioniert)

    var suchcode = "456";
    var index = sensors.devices.code.findIndex(suchcode);
    

    Wie mache ich es richtig?
    Geht das überhaupt?

    Danke im Voraus

    LG
    Thomas

    „Am Ende wird alles gut.
    Wenn es nicht gut wird,
    ist es noch nicht das Ende.“

    blauholstenB paul53P AlCalzoneA 3 Antworten Letzte Antwort
    0
    • tcjT tcj

      Moin,

      ich habe folgendes Array (Beispiel)

      const sensors = {
          "devices": [
              {
                  "name": "tuer123",
                  "code": "123"
              },
              {
                  "name": "tuer456",
                  "code": "456"
              },
              {
                  "name": "tuer789",
                  "code": "789"
              }        
          ]};
      

      Daraus möchte ich jetzt den Index des Eintrages ermitteln, der einen bestimmten suchcode hat.
      Also in etwa so (was aber nicht funktioniert)

      var suchcode = "456";
      var index = sensors.devices.code.findIndex(suchcode);
      

      Wie mache ich es richtig?
      Geht das überhaupt?

      Danke im Voraus

      blauholstenB Offline
      blauholstenB Offline
      blauholsten
      Developer
      schrieb am zuletzt editiert von
      #2

      @tcj hi,

      indexOf oder includes sollte deine Wünsche entsprechen

      Entwickler vom: - Viessman Adapter
      - Alarm Adapter

      1 Antwort Letzte Antwort
      0
      • OliverIOO Offline
        OliverIOO Offline
        OliverIO
        schrieb am zuletzt editiert von
        #3

        var objArray = [
        { id: 0, name: 'Object 0', otherProp: '321' },
        { id: 1, name: 'O1', otherProp: '648' },
        { id: 2, name: 'Another Object', otherProp: '850' },
        { id: 3, name: 'Almost There', otherProp: '046' },
        { id: 4, name: 'Last Obj', otherProp: '984' }
        ];

        klassich:
        function findObjectByKey(array, key, value) {
        for (var i = 0; i < array.length; i++) {
        if (array[i][key] === value) {
        return array[i];
        }
        }
        return null;
        }
        var obj = findObjectByKey(objArray, 'id', 3);

        ES6
        let obj = objArray.find(obj => obj.id == 3);

        ob es6 geht musst du ausprobieren bzw. hier mit deiner version abgleichen
        https://nodejs.org/en/docs/es6/

        Meine Adapter und Widgets
        TVProgram, SqueezeboxRPC, OpenLiga, RSSFeed, MyTime,, pi-hole2, vis-json-template, skiinfo, vis-mapwidgets, vis-2-widgets-rssfeed
        Links im Profil

        1 Antwort Letzte Antwort
        0
        • tcjT tcj

          Moin,

          ich habe folgendes Array (Beispiel)

          const sensors = {
              "devices": [
                  {
                      "name": "tuer123",
                      "code": "123"
                  },
                  {
                      "name": "tuer456",
                      "code": "456"
                  },
                  {
                      "name": "tuer789",
                      "code": "789"
                  }        
              ]};
          

          Daraus möchte ich jetzt den Index des Eintrages ermitteln, der einen bestimmten suchcode hat.
          Also in etwa so (was aber nicht funktioniert)

          var suchcode = "456";
          var index = sensors.devices.code.findIndex(suchcode);
          

          Wie mache ich es richtig?
          Geht das überhaupt?

          Danke im Voraus

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

          @tcj sagte:

          Wie mache ich es richtig?

          Z.B. so

          const arr = sensors.devices;
          var suchcode = "456";
          var index = null;
          for(let i = 0; i < arr.length; i++) {
              if(arr[i].code == suchcode) {
                  index = i;
                  break;
              }
          }
          

          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

          1 Antwort Letzte Antwort
          0
          • tcjT tcj

            Moin,

            ich habe folgendes Array (Beispiel)

            const sensors = {
                "devices": [
                    {
                        "name": "tuer123",
                        "code": "123"
                    },
                    {
                        "name": "tuer456",
                        "code": "456"
                    },
                    {
                        "name": "tuer789",
                        "code": "789"
                    }        
                ]};
            

            Daraus möchte ich jetzt den Index des Eintrages ermitteln, der einen bestimmten suchcode hat.
            Also in etwa so (was aber nicht funktioniert)

            var suchcode = "456";
            var index = sensors.devices.code.findIndex(suchcode);
            

            Wie mache ich es richtig?
            Geht das überhaupt?

            Danke im Voraus

            AlCalzoneA Offline
            AlCalzoneA Offline
            AlCalzone
            Developer
            schrieb am zuletzt editiert von AlCalzone
            #5

            @tcj sagte in findindex:

            var index = sensors.devices.code.findIndex(suchcode);

            War schon fast richtig. Lies dir nochmal die Doku zu findIndex durch:
            https://developer.mozilla.org/de/docs/Web/JavaScript/Reference/Global_Objects/Array/findIndex

            Die Methode findIndex() gibt den Index des ersten Elements im Array zurück, das die bereitgestellte Testfunktion erfüllt.

            Du übergibst also nicht den gesuchten Code (woher soll das Programm wissen, wo sich dieser im Objekt befindet), sondern eine Funktion, die jeden Eintrag testet, ob er der gesuchte ist.

            var index = sensors.devices.findIndex(obj => obj.code === suchcode);
            

            wäre richtig.

            Warum `sudo` böse ist: https://forum.iobroker.net/post/17109

            1 Antwort Letzte Antwort
            0
            • tcjT Offline
              tcjT Offline
              tcj
              schrieb am zuletzt editiert von
              #6

              Danke an alle für eure Hinweise.
              Ich habe jetzt ein Funktion geschrieben, die das Array durchläuft.
              In etwa so wie von @OliverW gezeigt.

              LG
              Thomas

              „Am Ende wird alles gut.
              Wenn es nicht gut wird,
              ist es noch nicht das Ende.“

              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

              693

              Online

              32.6k

              Benutzer

              82.2k

              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