Martin: if-schleife - wo ist der fehler?

hallo,
könnt ihr mir sagen wo der fehler in dieser if-schleife ist:

if(arraya[0]-1>=0 && arraya[0]-1!=arrayb[arrayb.lenght-1])
  {
  alert(arraya[0]-1);
  alert(arrayb[arrayb.length-1]);
            }

die 2 alert meldungen werden immer ausgegeben auch wenn sie den gleichen wert haben.

martin

  1. Da liegt der fehler scheinbar auserhalb deines geposteten Scripts..
    poste mal dein ganze Script..

    hallo,
    könnt ihr mir sagen wo der fehler in dieser if-schleife ist:

    if(arraya[0]-1>=0 && arraya[0]-1!=arrayb[arrayb.lenght-1])
      {
      alert(arraya[0]-1);
      alert(arrayb[arrayb.length-1]);
                }

    die 2 alert meldungen werden immer ausgegeben auch wenn sie den gleichen wert haben.

    martin

    1. hi robert,
      das ganze script is zum posten glaube ich viel zu komplex.
      ich habe es jetzt nochmal nur mit der 2.bedingung versucht.
      also:
      if(array_a[0]-1!=array_b[array_b.lenght-1])
      {
      alert(array_a[0]-1);
      alert(array_b[array_b.length-1]);
      }

      aber ich verstehe nicht warum die die befehle in der if-schleife ausgeführt werden obwohl die 2 variablen in den bedingungen gleich sind.

      das kann ich ja durch die 2 alert-meldungen überprüfen.
      kann es sein das javascript bei den rechnugen irgendwas nicht versteht?
      martin

      » Da liegt der fehler scheinbar auserhalb deines geposteten Scripts..

      poste mal dein ganze Script..

      hallo,
      könnt ihr mir sagen wo der fehler in dieser if-schleife ist:

      if(arraya[0]-1>=0 && arraya[0]-1!=arrayb[arrayb.lenght-1])
        {
        alert(arraya[0]-1);
        alert(arrayb[arrayb.length-1]);
                  }

      die 2 alert meldungen werden immer ausgegeben auch wenn sie den gleichen wert haben.

      martin

      1. Hallo Martin,

        ich habe Dein Script getestet und es funktioniert. Allerdings habe ich die Arrays durch Variabeln (var a=2;var b=1;) ersetzt. Ich vermute daher, dass array_a einen anderen Datentyp hat als array_b.

        Gruß,   Jürgen

        1. Hallo Martin,

          ich habe Dein Script getestet und es funktioniert. Allerdings habe ich die Arrays durch Variabeln (var a=2;var b=1;) ersetzt. Ich vermute daher, dass array_a einen anderen Datentyp hat als array_b.

          Gruß,   Jürgen

          Hallo Jürgen,
          danke das du dir soviel Mühe machst.
          dann liegt es wohl daran das Javascript irgenwie Probleme hat mit den Berechnungen in den Bedingungen der If-Abfrage den die 2 Arrays haben beide keinen speziellen Datentyp.
          Martin

  2. hi

    könnt ihr mir sagen wo der fehler in dieser if-schleife ist:

    nein, denn es ist keine if-schleife, sondern eine abfrage. eine schleife ist eine kontrollstruktur die _mehrmals_ durchlaufen werden _kann_, und das ist bei IF nicht der fall.

    if(arraya[0]-1>=0 && arraya[0]-1!=arrayb[arrayb.lenght-1])
      {
      alert(arraya[0]-1);
      alert(arrayb[arrayb.length-1]);
                }

    die 2 alert meldungen werden immer ausgegeben auch wenn sie den gleichen wert haben.

    natürlich, sie stehen ja hintereinander. ich verstehe nicht genau was du willst, aber ich würde schätzen, dass ein "else"-zweig das problem löst.
    wenn nicht, dann solltest du genauer beschreiben, was du willst.

    Fabian

    1. Ups .. sorry hab das falsch verstanden .. Hatte geglaubt das er das Problem hat das sich die Meldungen immer zeigen auch wenn die if Schleife aktiviert wird.. sorry

      könnt ihr mir sagen wo der fehler in dieser if-schleife ist:

      nein, denn es ist keine if-schleife, sondern eine abfrage. eine schleife ist eine kontrollstruktur die _mehrmals_ durchlaufen werden _kann_, und das ist bei IF nicht der fall.

      if(arraya[0]-1>=0 && arraya[0]-1!=arrayb[arrayb.lenght-1])
        {
        alert(arraya[0]-1);
        alert(arrayb[arrayb.length-1]);
                  }

      die 2 alert meldungen werden immer ausgegeben auch wenn sie den gleichen wert haben.

      natürlich, sie stehen ja hintereinander. ich verstehe nicht genau was du willst, aber ich würde schätzen, dass ein "else"-zweig das problem löst.
      wenn nicht, dann solltest du genauer beschreiben, was du willst.

      Fabian

    2. natürlich, sie stehen ja hintereinander. ich verstehe nicht genau was du willst, aber ich würde schätzen, dass ein "else"-zweig das problem löst.
      wenn nicht, dann solltest du genauer beschreiben, was du willst.

      Hallo Fabian,
      ich hab aus der if-abfrage die erste bedingung entfernt weil ich von der weis das sie richtig erkannt wird:

      if(arraya[0]-1!=arrayb[arrayb.lenght-1])
      {
      alert(arraya[0]-1);
      alert(arrayb[arrayb.length-1]);
      }

      die befehle werden doch nur ausgeführt wenn:
      arraya[0]-1 nicht den gleichen wert hat wie arrayb[arrayb.lenght-1]

      aber die alert-meldungen mit den gleichen variablen wir in den bedingungen werden auch ausgegeben wenn sie den gleichen wert haben.

      Martin

      1. hi

        natürlich, sie stehen ja hintereinander. ich verstehe nicht genau was du willst, aber ich würde schätzen, dass ein "else"-zweig das problem löst.
        wenn nicht, dann solltest du genauer beschreiben, was du willst.

        if(arraya[0]-1!=arrayb[arrayb.lenght-1])
        {
        alert(arraya[0]-1);
        alert(arrayb[arrayb.length-1]);
        }

        die befehle werden doch nur ausgeführt wenn:
        arraya[0]-1 nicht den gleichen wert hat wie arrayb[arrayb.lenght-1]

        so sollte es sein, ja.

        aber die alert-meldungen mit den gleichen variablen wir in den bedingungen werden auch ausgegeben wenn sie den gleichen wert haben.

        versuch mal folgende fassung:

        if((arraya[0] -1) != arrayb[(arrayb.lenght -1)])
        {
        alert((arraya[0] -1));
        alert(arrayb[(arrayb.length -1)]);
        }

        Fabian

        1. hi

          Hi Fabian,

          versuch mal folgende fassung:

          ich hab meinen fehler dank andreas schon gefunden.
          es war nur das ich einmal anstatt "length" "lenght" geschrieben habe.
          trotzdem vielen dank.

          Martin

          1. hi

            versuch mal folgende fassung:

            ich hab meinen fehler dank andreas schon gefunden.
            es war nur das ich einmal anstatt "length" "lenght" geschrieben habe.
            trotzdem vielen dank.

            ja, hab's gelesen. Das Problem war einfach, dass ich (wir) an der falschen stelle gesucht haben ;-)

            Fabian

  3. Moin,

    könnt ihr mir sagen wo der fehler in dieser if-schleife ist:
    ...
      if(arraya[0]-1>=0 && arraya[0]-1!=arrayb[arrayb.lenght-1])
    ...
      alert(arrayb[arrayb.length-1]);

    Mein Versuch:... einmal 'length' und einmal 'lenght'?
    Am
    Rande
    bemerkt
    handelt es sich bei if um keine "Schleife".

    Viele Grüße

    Andreas

    1. Moin,

      Mein Versuch:... einmal 'length' und einmal 'lenght'?
      Am
      Rande
      bemerkt
      handelt es sich bei if um keine "Schleife".

      Viele Grüße

      Andreas

      Hallo Andreas,
      vielen Dank jetzt funktioniert es. Diesen Fehler mit dem blöden length mach ich immer wieder.

      Martin