¿Existe una forma jQuery de realizar iteraciones sobre los miembros de un objeto, como en:
for (var member in obj) {
...
}
¡Simplemente no me gusta que esto for
sobresalga de mi encantadora notación jQuery!
¿Existe una forma jQuery de realizar iteraciones sobre los miembros de un objeto, como en:
for (var member in obj) {
...
}
¡Simplemente no me gusta que esto for
sobresalga de mi encantadora notación jQuery!
Respuestas:
$.each( { name: "John", lang: "JS" }, function(i, n){
alert( "Name: " + i + ", Value: " + n );
});
this
es también n
. return false
rompe cada bucle ...
Este método recorrerá las propiedades del objeto y las escribirá en la consola con sangría creciente:
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));
}
});
}
Simplemente páselo por el objeto que desea iterar:
var response = $.ajax({
url: myurl,
dataType: "json"
})
.done(function(a){
console.log("Returned values:");
enumerate(a);
})
.fail(function(){ console.log("request failed");});
Tarde, pero se puede hacer usando Object.keys como,
var a={key1:'value1',key2:'value2',key3:'value3',key4:'value4'},
ulkeys=document.getElementById('object-keys'),str='';
var keys = Object.keys(a);
for(i=0,l=keys.length;i<l;i++){
str+= '<li>'+keys[i]+' : '+a[keys[i]]+'</li>';
}
ulkeys.innerHTML=str;
<ul id="object-keys"></ul>
n
no es del todo correcta. Al menos podría sern.name