Jquery jede Funktion funktioniert nicht für string-indizierte arrays
Ich bin nicht in der Lage zu Holen Sie sich die $.each () - jquery-Funktion die Arbeit mit string-indizierte arrays, eine Idee, auf was mache ich falsch?
Beispiel @ JSFiddle -->
http://jsfiddle.net/WKDUA/
Code:
var firstArray = [52, 33];
document.writeln("First Array:\n<ul>");
$.each(firstArray, function(key, value)
{
document.writeln('<li>[' + key + ']: ' + value + "</li>\n");
});
document.writeln("</ul>\n");
var secondArray = new Array();
secondArray['first'] = 'foo';
secondArray['second'] = 'bar';
document.writeln("Second Array:\n<ul>");
$.each(secondArray, function(key, value)
{
document.writeln('<li>[' + key + ']: ' + value + "</li>\n");
});
document.writeln("</ul>\n");
Ausgabe:
First Array:
[0]: 52
[1]: 33
Second Array:
- es ist tatsächlich ein Objekt, kein array
Du musst angemeldet sein, um einen Kommentar abzugeben.
Einer array ist immer indiziert, die durch eine Ganzzahl, die die position eines Elements.
Du suchst einen die - Objekt, dessen Eigenschaften Sie zugreifen können über die Klammer-notation:
In Ihrem ursprünglichen code, der
$.each
block wurde nie eingetragen, weil Sie nicht fügen Sie alle Elemente, um das array. Sie hat definieren Sie die Eigenschaftenfirst
undsecond
auf das array und vergeben Sie Werte.Beispiel: http://jsfiddle.net/ddTPu/
String-indizierte arrays(ein.k.ein. assoziative arrays) sind Objekte, und nicht arrays.
Ein array kann nicht alles haben, was als Zahl als index(es kann sogar sein, Mathematik.PI, weil es eine Zahl ist).
Die Lösung ist zu erklären secondArray als Objekt :
Können Sie sehen,hier ein funktionierendes Beispiel.