Metoda ta będzie przechodzić przez właściwości obiektu i zapisać je do konsoli z tiret rosnącą:
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));
}
});
}
Wystarczy przekazać obiekt chcesz iterację:
var response = $.ajax({
url: myurl,
dataType: "json"
})
.done(function(a){
console.log("Returned values:");
enumerate(a);
})
.fail(function(){ console.log("request failed");});
Również Myślę, że ostrzeganie 'n' nie jest poprawna intirely . Przynajmniej może to być 'n.nazwa' – Eugene
@Eugena: Nie rozumiem. Każda funkcja przyjmuje tablicę lub obiekt jako pierwszy argument, a funkcję jako drugą. Ta funkcja pobiera calld dla każdego elementu w tablicy/każdej właściwości w obiekcie. Za każdym razem, gdy funkcja jest wywoływana, otrzymuje indeks, a wartość/nazwa i wartość przekazywane są jako argumenty. W moim przykładzie parametr "n" to dwa ciągi "John" i "JS". Właściwość "nazwa" będzie "niezdefiniowana". –
Tak. Myliłem się tutaj. W jakiś sposób pomyślałem, że każda właściwość w obiekcie jest innym obiektem, na przykład z nazwą właściwości, która jest łańcuchem. Oczywiście, że wszystko jest w porządku. Bardzo przepraszam. :) – Eugene