numerisches array howto

Neurodeamon

Erfahrenes Mitglied
Ich möchte mal wieder meine JS-Kenntnisse auffrischen, bzw. weiterlernen. Folgendes Script soll den String ‘SChars' in ein Array schreiben. Jeder Buchstabe soll nun ein Element im Array einnehmen. Das Array soll ab Schlüssel 1 beginnen und nicht ab 0. So weit, so gut.

Die Schleife funktioniert wunderbar. Mit dem 'document.write' kann ich die mit 'substr' ausgelesenen Buchstaben ausgeben. Wie bekomme ich diese aber nun in das Array?
Ich habe es mit AChars[i] versucht, aber wenn ich das ausgeben möchte, erhalte ich ein 'UNDEFINED' statt dem Buchstaben. Was mache ich falsch?

Code:
<script type="text/javascript">
<!--
	var SChars = "abcdefghijklmnopqrstuvwxyz";
	var VChrlgth= SChars.length;
	var AChars = new Array();
	for(var i = 1; i<VChrlgth+1; i++)
		document.write(SChars.substr(i-1,1));
		AChars[i] = SChars.substr(i-1,1);
//-->
</script>

Thanks in advance,
Neuro
 
Ganz einfach :)

Du hast die geschweiften Klammern in der for-Schleife vergessen:
Code:
for(var i = 1; i<VChrlgth+1; i++) {
    document.write(SChars.substr(i-1,1));
    AChars[i ] = SChars.substr(i-1,1);
}
PS: Das substr kannst du dir ersparen, dazu gibt es charAt.
Code:
sStr = new String("foobar");
aOut = new Array();

for (i=0; i<sStr.length; i++) {
    aOut[i+1] = sStr.charAt(i);
}
 
Möh, um ehrlich zu sein bin ich zu PHP geschädigt =D.
Ok, charAt() is im Kopf gespeichert :-)

Aber mein Mozilla meckert:
Code:
Fehler: $i is not defined
Quelldatei: file:///Mac%20HD/Desktop%20Folder/coding/stringspielereien/jsdecode.html
Zeile: 14
Genau das gleiche Problem was auch ich mit meinem Code hatte.
Ich habe mal geschaut, die Klammern für die for-Schleife scheinen nicht Pflicht zu sein. (?)

Hmpf, gibt es eigentlich ein gutes JavaScript Buch? Ich meine nicht so ein "Jetzt kann ich JavaScript" von DataBecker ... gedöns. :-)
 
Original geschrieben von Neurodeamon
Ich habe mal geschaut, die Klammern für die for-Schleife scheinen nicht Pflicht zu sein. (?)
Naja, nur bei mehrzeiligen Anweisung.
Also
Code:
if (foo)
    bar;
geht.

Zu dem Fehler:
Was genau steht denn in Zeile 14?
 
[EDIT]
Zum Fehler:
Scheint ein Mozilla 1.3 für Macintosh JS-Bug zu sein.
Im Firefox geht es einwandfrei (Mozedit).
Du hattest recht mit mehrzeiligen Anweisungen in For-Schleifen - geschweifte Klammer ist Pflicht ! ;)

Mal was ganz anderes:
Ich habe festgestellt, das es in JavaScript keine Möglichkeit gibt ein Array abzuklappern (wie bei PHP search_array() ).

Beispiel:
aListe[1] enthält "Schlumpf"
aListe[2] enthält "Brei"
aListe[3] enthält "Woggawhiee"
aListe[4] enthält "Aha"
aListe[5] enthält "Blabla"
aListe[6] enthält "Nixda"

Wie kann ich den Index von z. B. "Brei" ermitteln?
Also, ich durchsuche das Array nach "Brei" und bekomme den Index des Arrays - also Position 2. Ist das möglich?
[/EDIT]
 
Zuletzt bearbeitet:
Original geschrieben von Neurodeamon
Hmpf, gibt es eigentlich ein gutes JavaScript Buch? Ich meine nicht so ein "Jetzt kann ich JavaScript" von DataBecker ... gedöns. :-)

Ich hab eigentlich schon alles mal angelesen was zu JS auf dem deutschen Markt ist. Follgende kann ich dir empfehlen:

1) JavaScript. Das umfassende Referenzwerk. - ISBN: 3897213303
DIE referenz zu Javascript schlechthin
2) JavaScript - ISBN: 3898423662
Auch eine Sehr gute referenz mit sehr sehr vielen "ready to use" Beispielen
3) Das JavaScript Codebook - ISBN: 3827319730
Das JS Buch von dem ich persönlich am meisten gelernt habe
4) JavaScript (von Jan Winkler) - ISBN: 3772360076
Relativ neu - geht auf Themen ein die sonst niemand behandelt. Von Serverseitigem Javascript, über JScript.NET mit der wahrscheinlich besten JScript Objekt Referenz...

Das sind eigentlich die vier besten JS Bücher die ich lesen durfte..

ch habe festgestellt, das es in JavaScript keine Möglichkeit gibt ein Array abzuklappern (wie bei PHP search_array() )
Dann machen wir uns das selbst :)

PHP:
function arrayFind(sSearch){
    for(var x=0; x<this.length; x++){
      if(this[x] == sSearch){
        var iIndex = x;
        return iIndex;
      }
    }
    return -1;
  }
  Array.prototype.find = arrayFind;
Der Aufruf wäre dann praktisch so:
PHP:
var x = new Array('1','2','3','4','5');
    alert(x.find('2'));
 
Zuletzt bearbeitet:
Genial :)

Ich weiß schon warum ich mich bei tutorials.de rumtreibe - hier sind die klügsten Köpfe !
Genug geschleimt! :-)

Wenn ich fertig bin, zeige ich Euch das fertige 'Produkt'!
Credits sind Euch sicher
 

Neue Beiträge

Zurück