Thorsten F.: Array Vergleich

Hallo Leute,

ich habe folgendes Problem:

Und zwar:

Ich habe ein Array "zahlen" in dem 4 Werte enthalten sind.
Zum Beispiel: 1,5,3,1

So, jetzt möchte ich gerne eine Funktion haben, die mir ausgibt:

zahlen[0] ist der identische Wert wie zahlen[3].

Habe das zwar schonmal hinbekommen; allerdings war der Code riesig, weil ich praktisch jedem Wert im Array mit jedem verglichen habe und das kanns ja nicht sein oder?

Grüße,
Thorsten F.

  1. So, jetzt möchte ich gerne eine Funktion haben, die mir ausgibt:
    zahlen[0] ist der identische Wert wie zahlen[3].

    document.write("zahlen[0] ist der identische Wert wie zahlen[3].") SCNR.

    Thorsten,
    Was genau möchtest du? Alle Paare mit gleichem Wert ausgeben?

    Dann:

    jedem Wert im Array mit jedem verglichen habe und das kanns ja nicht sein oder?

    Doch, das ist es. Allerdings musst du nicht doppelt vergleichen; wenn du zahlen[i] schon mit zahlen[j] verglichen hast, musst du nicht nochmal zahlen[j] mit zahlen[i] vergleichen.

    Habe das zwar schonmal hinbekommen; allerdings war der Code riesig

    Wenn du zwei for-Schleifen schachtelst, ist der Code winzig.

    Live long and prosper,
    Gunnar

    --
    „Weisheit ist nicht das Ergebnis der Schulbildung, sondern des lebenslangen Versuchs, sie zu erwerben.“ (Albert Einstein)
    1. Und wie in etwa müssten die beiden for-schleifen dann aussehen, wenn ich mal fragen darf?
      Kann mir das grad nicht vorstellen.

      Gruß,
      Thorsten F.

      1. Thorsten,

        Und wie in etwa müssten die beiden for-schleifen dann aussehen, wenn ich mal fragen darf?
        Kann mir das grad nicht vorstellen.

        Du vergleichst entweder die mit x oder die mit o markierten Paare

          1 2 3 4 … n-1 n  
        1   x x x …   x x  
        2 o   x x …   x x  
        3 o o   x …   x x  
        ⋮ ⋱  
        n o o o o …   o  
        
        

        Also

        for(var i = …; i < …; i++)  
          for(var j = …; j < …; i++)  
            if(zahlen[i] = zahlen[j])  
              document.write("zahlen[" + i + "] ist der identische Wert wie zahlen[" + j + "].");
        

        Die Schleifengrenzen findest du self? (Denn so nennt sich dies Forum.)

        Live long and prosper,
        Gunnar

        --
        „Weisheit ist nicht das Ergebnis der Schulbildung, sondern des lebenslangen Versuchs, sie zu erwerben.“ (Albert Einstein)
        1. 1 2 3 4 … n-1 n
          1   x x x …   x x
          2 o   x x …   x x
          3 o o   x …   x x
          ⋮ ⋱
          n o o o o …   o

          (Notwendige?) Ergänzung: In JavaScript beginnt die Zählung der Array-Indizes bei 0.

          Live long and prosper,
          Gunnar

          --
          „Weisheit ist nicht das Ergebnis der Schulbildung, sondern des lebenslangen Versuchs, sie zu erwerben.“ (Albert Einstein)