Ergebnis 1 bis 6 von 6

Thema: JS: Array enthält merkwürde Elemente

  1. #1
    Meister(in)
    Registriert seit
    05.03.2006
    Alter
    29
    Beiträge
    432
    Danke
    0
    Bekam 0 mal "Danke" in 0 Postings

    Standard JS: Array enthält merkwürde Elemente

    Nabend!

    Nach diesem Beispiel versuche ich ein assoziatives Array auszulesen:
    http://www.infos24.de/javascripte/ha..._arrays.htm#14

    Ich habe den folgenden Code 1:1 aus dem Beispiel übernommen:
    Code:
    <script type="text/javascript">
    Obst=new Array&#40;&#41;;
    Obst&#91;"Apfel"&#93;="sauer";
    Obst&#91;"Banane"&#93;="süß";
    Obst&#91;"Pampelmuse"&#93;="bitter";
    Obst&#91;"Orange"&#93;="fruchtig";
    function aufblenden12&#40;&#41;
    &#123;
    for&#40;i in Obst&#41;
    &#123;
    alert&#40;"Der Name des Schlüssels ist "+i+"\nDer dazugehörige Wert ist "+Obst&#91;i&#93;&#41;;
    &#125;
    &#125;
    </script>
    
    hier
    Wenn ich die Funktion über den Link aufrufe, bekomme ich nach den vier richtigen Inhalten des Arrays aber auch noch folgende:
    Der Name des Schlüssels ist copy Der dazugehörige Wert ist function (start, length) { start = start || 0; if (start < 0) { start = this.length + start; } length = length || this.length - start; var newArray = []; for (var i = 0; i < length; i++) { newArray[i] = this[start++]; } return newArray; }
    Der Name des Schlüssels ist remove Der dazugehörige Wert ist function (item) { var i = 0; var len = this.length; while (i < len) { if (this[i] === item) { this.splice(i, 1); len--; } else { i++; } } return this; }
    Der Name des Schlüssels ist contains Der dazugehörige Wert ist function (item, from) { return this.indexOf(item, from) != -1; }
    Der Name des Schlüssels ist associate Der dazugehörige Wert ist function (keys) { var obj = {}, length = Math.min(this.length, keys.length); for (var i = 0; i < length; i++) { obj[keys[i]] = this[i]; } return obj; }
    Der Name des Schlüssels ist extend Der dazugehörige Wert ist function (array) { for (var i = 0, j = array.length; i < j; i++) { this.push(array[i]); } return this; }
    Der Name des Schlüssels ist merge Der dazugehörige Wert ist function (array) { for (var i = 0, l = array.length; i < l; i++) { this.include(array[i]); } return this; }
    Der Name des Schlüssels ist include Der dazugehörige Wert ist function (item) { if (!this.contains(item)) { this.push(item); } return this; }
    Der Name des Schlüssels ist getRandom Der dazugehörige Wert ist function () { return this[$random(0, this.length - 1)] || null; }
    Der Name des Schlüssels ist getLast Der dazugehörige Wert ist function () { return this[this.length - 1] || null; }
    Der Name des Schlüssels ist each Der dazugehörige Wert ist function forEach() { [native code] }
    Der Name des Schlüssels ist test Der dazugehörige Wert ist function (item, from) { return this.indexOf(item, from) != -1; }
    Der Name des Schlüssels ist rgbToHex Der dazugehörige Wert ist function (array) { if (this.length < 3) { return false; } if (this.length == 4 && this[3] == 0 && !array) { return "transparent"; } var hex = []; for (var i = 0; i < 3; i++) { var bit = (this[i] - 0).toString(16); hex.push(bit.length == 1 ? "0" + bit : bit); } return array ? hex : "#" + hex.join(""); }
    Der Name des Schlüssels ist hexToRgb Der dazugehörige Wert ist function (array) { if (this.length != 3) { return false; } var rgb = []; for (var i = 0; i < 3; i++) { rgb.push(parseInt(this[i].length == 1 ? this[i] + this[i] : this[i], 16)); } return array ? rgb : "rgb(" + rgb.join(",") + ")"; }
    Der Name des Schlüssels ist rgbToHsb Der dazugehörige Wert ist function () { var red = this[0], green = this[1], blue = this[2]; var hue, saturation, brightness; var max = Math.max(red, green, blue), min = Math.min(red, green, blue); var delta = max - min; brightness = max / 255; saturation = max != 0 ? delta / max : 0; if (saturation == 0) { hue = 0; } else { var rr = (max - red) / delta; var gr = (max - green) / delta; var br = (max - blue) / delta; if (red == max) { hue = br - gr; } else if (green == max) { hue = 2 + rr - br; } else { hue = 4 + gr - rr; } hue /= 6; if (hue < 0) { hue++; } } return [Math.round(hue * 360), Math.round(saturation * 100), Math.round(brightness * 100)]; }
    Der Name des Schlüssels ist hsbToRgb Der dazugehörige Wert ist function () { var br = Math.round(this[2] / 100 * 255); if (this[1] == 0) { return [br, br, br]; } else { var hue = this[0] % 360; var f = hue % 60; var p = Math.round(this[2] * (100 - this[1]) / 10000 * 255); var q = Math.round(this[2] * (6000 - this[1] * f) / 600000 * 255); var t = Math.round(this[2] * (6000 - this[1] * (60 - f)) / 600000 * 255); switch (Math.floor(hue / 60)) { case 0: return [br, t, p]; case 1: return [q, br, p]; case 2: return [p, br, t]; case 3: return [p, q, br]; case 4: return [t, p, br]; case 5: return [br, p, q]; default:; } } return false; }
    Kann mir das mal wer erklären? o.0
    Achtung: Dies ist ein alter Thread im HTML und Webmaster Forum
    Diese Diskussion ist älter als 90 Tage. Die darin enthaltenen Informationen sind möglicherweise nicht mehr aktuell. Erstelle bitte zu deiner Frage ein neues Thema im Forum !!!!!

  2. #2
    Azubi(ne)
    Registriert seit
    27.11.2006
    Beiträge
    86
    Danke
    0
    Bekam 0 mal "Danke" in 0 Postings

    Standard

    ja, was soll "for(i in Obst)" sein?

    for (i=0;i<Obst.length;i++) oder so ähnlich

  3. #3
    Forum Guru Avatar von synaptic
    Registriert seit
    20.06.2007
    Ort
    Butzbach-Wiesental
    Beiträge
    10.901
    Danke
    45
    Bekam 48 mal "Danke" in 46 Postings
    Blog-Einträge
    1

    Standard

    Also ich hab sowas auch noch nie gesehen, bei mir kommen aber stets die richtigen antworten(ergebnisse)
    hast du WIRKLICH NICHTS am code geändert??
    ich mein ich find schon komisch, daß javascript des mit dem "for i in array"
    hinbekommt, also daß des anhand der einträge im array erkennt, daß
    Code:
    i=0; i<array.length; i++
    ist...
    hab mir des von deinem link mal durchgelsen, is ne echt fette sache, daß javascript des so macht
    aber weshalb diese fehlermeldungen bei dir kommen, ist eher ein bömisches dorf für mich.
    schreib dem typen, der des da auf seiner site erklärt doch mal ne mail, er scheint ja echt was drauf zu haben...

    ach und christopher, würdest du den text lesen, der bei der velinkten seite über dem übernommenen script steht, hätteste die frage nicht stellen brauchen.
    ein assoziatives array kennt seinen index und seine größe nicht auf die art und weise, wie ein normales array!
    KEIN support via pn, email, messenger oder falsch geposteten threads
    Futter für deine Schnuffelzwerge gibts bei den Schnuffelzwergen TOP Qualität, also klicken und kaufen

  4. #4
    Meister(in)
    Themenstarter

    Registriert seit
    05.03.2006
    Alter
    29
    Beiträge
    432
    Danke
    0
    Bekam 0 mal "Danke" in 0 Postings

    Standard

    Also das Ding ist, das es in Javascript angeblich keine assoziativen Arrays gibt. Dafür gibt es in Javascript Objekte und Eigenschaften. Irgentwo hab ich gestern noch gelesen, das man einfach anstelle eines Arrays ein Object erstellen soll.

    Diese Spezielle for-Schleife wird auf verschiedenen Seiten ja auch immer mit folgender Syntax beschrieben:
    Code:
    for &#40;var in Obj&#41;
    von daher kann man wohl davon ausgehen, dass das auch nur mit Objects funktioniert...
    Ich tüftel erstmal weiter.

  5. #5
    Forum Guru Avatar von synaptic
    Registriert seit
    20.06.2007
    Ort
    Butzbach-Wiesental
    Beiträge
    10.901
    Danke
    45
    Bekam 48 mal "Danke" in 46 Postings
    Blog-Einträge
    1

    Standard

    viel eforlg..
    hab diese technik bisher nie gebraucht
    wäre nice wenn du dein vorhaben mal etwas näher beschreibst
    KEIN support via pn, email, messenger oder falsch geposteten threads
    Futter für deine Schnuffelzwerge gibts bei den Schnuffelzwergen TOP Qualität, also klicken und kaufen

  6. #6
    Meister(in)
    Themenstarter

    Registriert seit
    05.03.2006
    Alter
    29
    Beiträge
    432
    Danke
    0
    Bekam 0 mal "Danke" in 0 Postings

    Standard

    Ich versuche gerade (ohne Tutorial :P) eine Live-Suche mit Ajax unter Verwendung von Mootools zu programmieren.
    Das Array bzw. Objekt enthält die Parameter die an das PHP-Script übergeben werden.
    Die Parameter werden an den Dateinamen angehangen und im Script per $_GET verarbeitet und an einen MySQL-Query angehengt.

    index.html:
    Code:
    <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http&#58;//www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
    <html xmlns="http&#58;//www.w3.org/1999/xhtml">
    <head>
    <meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
    <title>Ajax Search</title>
    <script type="text/javascript" src="mootools.js"></script>
    <script type="text/javascript">
    //------------------+
    // Ajax Content   |
    //------------------+
    var xmlHttpObject;
    
    function loadContent&#40;content&#41;
    &#123;
        xmlHttpObject = new XHR&#40;&#123;method&#58; 'get', onSuccess&#58; handleContent&#125;&#41;.send&#40;content&#41;;
    &#125;
    
    function handleContent&#40;&#41;
    &#123;
        $&#40;'myContent'&#41;.innerHTML = xmlHttpObject.response.text;
    &#125;
    
    parameter = new Object;
    function setParam&#40;param,value&#41; &#123;
    	parameter&#91;param&#93; = value;
    	var url = '';
    	var i;
    	for&#40;i in parameter&#41;
    	&#123;
    		url += "&"+i+"="+parameter&#91;i&#93;;
    	&#125;
    	document.getElementById&#40;"myContent"&#41;.innerHTML = "[img]lade.gif[/img]";
    	setTimeout&#40;"loadContent&#40;'result.php?blind=blind"+url+"'&#41;",1000&#41;;
    &#125;
    </script>
    </head>
    <body>
    <select>
    	<option value="false" onClick="setParam&#40;'geschlecht',this.value&#41;;">Alle</option>
    	<option value="2" onClick="setParam&#40;'geschlecht',this.value&#41;;">weiblich</option>
    	<option value="1" onClick="setParam&#40;'geschlecht',this.value&#41;;">m&auml;nnlich</option>
    	<option value="3" onClick="setParam&#40;'geschlecht',this.value&#41;;">ts</option>
    </select> Geschlecht
    
    
    <select>
    	<option value="false" onClick="setParam&#40;'alter',this.value&#41;;">Alle</option>
    	<option value="1" onClick="setParam&#40;'alter',this.value&#41;;">18-25</option>
    	<option value="2" onClick="setParam&#40;'alter',this.value&#41;;">26-30</option>
    	<option value="3" onClick="setParam&#40;'alter',this.value&#41;;">30-35</option>
    </select> Alter
    <p id="myContent"></p>
    </body>
    </html>
    result.php
    Code:
    <?php
    if &#40;isset&#40;$_GET&#91;"geschlecht"&#93;&#41; AND $_GET&#91;"geschlecht"&#93; != "false"&#41; &#123;
    	echo "Geschlecht&#58; ".$_GET&#91;"geschlecht"&#93;."
    ";
    &#125;
    if &#40;isset&#40;$_GET&#91;"alter"&#93;&#41; AND $_GET&#91;"alter"&#93; != "false"&#41; &#123;
    	echo "Alter&#58; ".$_GET&#91;"alter"&#93;."
    ";
    &#125;
    ?>
    Bisher werden die Parameter einfach wieder ausgegeben. Die Datenbank abfrage mach ich gerade.

Ähnliche Themen

  1. Kontrollieren, ob String "http://" enthält
    Von Unregistriert im Forum PHP Forum - Apache - CGI - Perl - JavaScript und Co.
    Antworten: 2
    Letzter Beitrag: 12.08.2008, 21:34
  2. inline/block elemente
    Von Niels im Forum HTML & CSS Forum
    Antworten: 5
    Letzter Beitrag: 28.10.2007, 15:30
  3. Geöffnete Elemente zweimal in der Startleiste
    Von ssi:gen im Forum Computer - Internet Forum
    Antworten: 2
    Letzter Beitrag: 01.09.2007, 13:07
  4. Code Elemente einfärben
    Von Cpt. Rick im Forum HTML & CSS Forum
    Antworten: 4
    Letzter Beitrag: 22.09.2006, 11:45
  5. anzahl der elemente für gruppenbildung...
    Von driver im Forum Computer - Internet Forum
    Antworten: 0
    Letzter Beitrag: 19.04.2006, 14:18

Stichworte

Berechtigungen

  • Neue Themen erstellen: Nein
  • Themen beantworten: Nein
  • Anhänge hochladen: Nein
  • Beiträge bearbeiten: Nein
  •