Questo metodo vi guiderà attraverso le proprietà degli oggetti e scriverli alla console con l'aumentare trattino:
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));
}
});
}
Basta passarlo l'oggetto si vuole scorrere:
var response = $.ajax({
url: myurl,
dataType: "json"
})
.done(function(a){
console.log("Returned values:");
enumerate(a);
})
.fail(function(){ console.log("request failed");});
Inoltre immagino, che avvisando 'n' non è corretto intirely . Almeno potrebbe essere 'n.name' – Eugene
@Eugene: Non capisco il tuo punto. Ogni funzione accetta un array o un oggetto come primo argomento e una funzione come secondo. Questa funzione ottiene call per ogni elemento nell'array/ogni proprietà nell'oggetto. Ogni volta che viene chiamata la funzione, ottiene l'indice e il valore/nome e valore passati come argomenti. Nel mio esempio il parametro "n" sono le due stringhe "John" e "JS". La proprietà "nome" sarebbe "indefinita". –
Sì. Ho sbagliato qui. In qualche modo ho pensato che ogni proprietà dell'oggetto è un altro oggetto con, per esempio, il nome della proprietà che è una stringa. Di tutto ciò è sbagliato. Mi dispiace. :) – Eugene