marvin: script erklärung

Hallo kann mir jemand bitte den folgenden scriptsausschnitt erklären. Was wird da gemacht und wie.

function hallo()
{
 var temp2=new Array(); bilder = new Array(); gewaehltefragen = new Array();falscheIndex=new Array();bild=new Array();

for(var i=0; i<falscheIndex.length; i++)
    {     gewaehltefragen[gewaehltefragen.length]=falscheIndex[i];
  var pos=temp2.length;
   temp2[pos]=new Array();
     var pos2=bilder.length;
     bilder[pos2] = bild[falscheIndex[i]];
   for(var j=0;j<3;++j) {
    temp2[pos][j]=antworten[falscheIndex[i]][j];
   }
}
 while(gewaehltefragen.length!=10) {
  var index=zufall();
  var doppelt=false;
  for(var i=0;i<gewaehltefragen.length;++i) {

if(gewaehltefragen[i]==index)
    doppelt=true;
  }
  if(doppelt==false) {
   gewaehltefragen[gewaehltefragen.length]=index;
    var pos=temp2.length;
    temp2[pos]=new Array();
    var pos2=bilder.length;
    bilder[pos2] = bild[index];
    for(var i=0;i<3;++i) {
    temp2[pos][i]=antworten[index][i];
   }
  }

}

Danke!

  1. Ich würd mich sehr freuen,wenn mir bei diesem script jemand helfen würde. DANKE

  2. gudn tach!

    Hallo kann mir jemand bitte den folgenden scriptsausschnitt erklären. Was wird da gemacht und wie.

    ich habe nicht die lust, irgendwelchen quellcode zu analysieren und anschliessend zu erklaeren, ausserdem scheint mir da einiges an weiterem code zu fehlen, was jedoch nicht heisst, dass du nun einfach noch mehr code posten und sagen sollst "so, hier ist der rest! reicht das? was macht das denn nun?".
    im handbuch selfhtml steht einiges zu javascript geschrieben. wenn du dich ein paar stunden damit beschaeftigst, wirst du den code vermutlich sogar selbst verstehen koennen.

    was anderes waere es, wenn du eine spezielle frage z.b. zu einer bestimmten zeile haettest.

    prost
    seth

  3. hallo

    Ok, dann möchte ich nur wissen was die zeile:

    for(var i=0; i<falscheIndex.length; i++)
        {     gewaehltefragen[gewaehltefragen.length]=falscheIndex[i];

    und die Zeile:

    for(var i=0;i<3;++i) {
        temp2[pos][i]=antworten[index][i];

    bedeutet.

    Das andere werde ich dann irgendwie selbst verstehn müssen.

    1. Hallo marvin.

      for(var i=0; i<falscheIndex.length; i++)

      {     gewaehltefragen[gewaehltefragen.length]=falscheIndex[i];

        
      So lange die Variable „i“ kleiner als die Anzahl der Elemente in „falscheIndex“ ist, wird unter Verwendung der Anzahl der Elemente in „gewaehltefragen“ ein neuer Schlüssel erzeugt und ebendiesem der Wert aus „falscheIndex“ unter Verwendung des aktuellen Wertes von „i“ zugewiesen.  
        
      Da Arrays stets bei 0 beginnen, ist die Anzahl der Elemente eines Arrays immer um eins höher als der höchste Schlüssel in diesem Array.  
        
      Also:  
        
      ~~~javascript
      var testArray = ['foo', 'bar'];  
        
      alert(testArray[0]); // „foo“  
      alert(testArray[1]); // „bar“  
        
      alert(testArray.length); // 2
      

      Diese Eigenschaft von Arrays wird oben also genutzt, um einen neuen Schlüssel in „gewaehltefragen“ anzulegen.

      und die Zeile:

      for(var i=0;i<3;++i) {

      temp2[pos][i]=antworten[index][i];

        
      Hier wird in drei Durchläufen dem Unterobjekt vom Objekt „temp2“, welches durch den Wert von „pos“ ermittelt wird ein neuer Schlüssel zugewiesen. Dessen Wert ergibt sich aus dem Wert des Unterobjektes von „antworten“, ermittelt durch „index“ und dem aktuellen Wert von „i“.  
        
      
      > Das andere werde ich dann irgendwie selbst verstehn müssen.  
        
      Christian Kruses Artikel zum [Objekt-Handling in JavaScript](http://aktuell.de.selfhtml.org/artikel/javascript/oomodell/index.htm) dürfte dir die zweite Schleife ein wenig verständlicher erscheinen lassen.  
        
        
      Einen schönen Dienstag noch.  
        
      Gruß, Ashura  
      
      -- 
      sh:( fo:} ch:? rl:( br: n4:~ ie:{ mo:| va:) de:> zu:} fl:( ss:) ls:[ js:|  
      „It is required that HTML be a common language between all platforms. This implies no device-specific markup, or anything which requires control over fonts or colors, for example. This is in keeping with the SGML ideal.“  
      [[HTML Design Constraints: Logical Markup](http://www.w3.org/History/19921103-hypertext/hypertext/WWW/MarkUp/HTMLConstraints.html)]
      
  4. Hi,

    var temp2=new Array(); bilder = new Array(); gewaehltefragen = new Array();falscheIndex=new Array();bild=new Array();
    for(var i=0; i<falscheIndex.length; i++)

    Da falscheIndex unmittelbar vor der Schleife ein neues (leeres) Array zugewiesen wird, ist falscheIndex.length 0.
    Die Anweisungen in der Schleife werden also nicht ausgeführt, da 0 nicht kleiner als 0 ist.

    Scheint also etwas sinnlos zu sein, das Script.

    cu,
    Andreas

    --
    Warum nennt sich Andreas hier MudGuard?
    Schreinerei Waechter
    O o ostern ...
    Fachfragen unaufgefordert per E-Mail halte ich für unverschämt und werde entsprechende E-Mails nicht beantworten. Für Fachfragen ist das Forum da.
  5. Hallo marvin,

    das Script besteht aus einer Funktion "Hallo", die eigentlich nichts macht. Es soll wohl so etwas wie ein Quiz sein, es hat sich aber noch keiner die Fragen etc. ausgedacht, daher wird die erste for-Schleife (i<...length) auch sofort abgebrochen. Außerdem greift das Script, so weit ich das jetzt sehe, nur auf lokale Variablen zu, die am Ende wieder vergessen werden.

    Zum Nachlesen:
    http://de.selfhtml.org/javascript/sprache/schleifen.htm
    http://de.selfhtml.org/javascript/sprache/bedingt.htm
    http://de.selfhtml.org/javascript/sprache/variablen.htm
    http://de.selfhtml.org/javascript/sprache/funktionen.htm
    http://de.selfhtml.org/javascript/objekte/array.htm

    Gruß, Jürgen