Diese Methode wird durch Objekteigenschaften gehen und sich an die Konsole mit zunehmendem Einzug schreiben:
function enumerate(o,s){
//if s isn't defined, set it to an empty string
s = typeof s !== 'undefined' ? s : "";
//iterate across o, passing keys as k and values as v
$.each(o, function(k,v){
//if v has nested depth
if(typeof v == "object"){
//write the key to the console
console.log(s+k+": ");
//recursively call enumerate on the nested properties
enumerate(v,s+" ");
} else {
//log the key & value
console.log(s+k+": "+String(v));
}
});
}
Übergeben Sie einfach das Objekt Sie wollen durchlaufen:
var response = $.ajax({
url: myurl,
dataType: "json"
})
.done(function(a){
console.log("Returned values:");
enumerate(a);
})
.fail(function(){ console.log("request failed");});
auch, dass ich denke, getan werden, alarmieren 'n' ist nicht korrekt intirely . Zumindest könnte es 'n.name' sein – Eugene
@Eugene: Ich verstehe Ihren Standpunkt nicht. Jede Funktion nimmt ein Array oder Objekt als erstes Argument und eine Funktion als zweites Argument. Diese Funktion wird für jedes Element im Array/jede Eigenschaft im Objekt aufgerufen. Jedes Mal, wenn die Funktion aufgerufen wird, werden der Index und der Wert/Name und Wert als Argumente übergeben. In meinem Beispiel sind die Parameter "n" die zwei Zeichenfolgen "John" und "JS". Die Eigenschaft "name" wäre "undefiniert". –
Ja. Ich habe mich hier geirrt. Irgendwie dachte ich, dass jede Eigenschaft in Objekt ein anderes Objekt mit zum Beispiel Eigenschaftsname ist, der eine Zeichenkette ist. Alles in allem ist das falsch. So leid. :) – Eugene