Cita:
Iniciado por jp91
Tal como dice for..in recorre toda las propiedades cuyo valor[enumerable] sea verdadero [/HIGHLIGHT]
Segun veo.. tanto la propiedad como el valor pueden ser false
Código Javascript
:
Ver original<script>
var array = [true, false, null, 'string'];
array['foo'] = 'bar'; // OJO! contrario a lo que muchos podrian creer, esta linea no es un nuevo elemento, sino una propiedad ;
array[true] = 'otro bar';
array[false] = 'otro mas';
array[false] = false;
for (var prop in array)
console.log(prop+ ' => '+array[prop]);
/*
1 => false
2 => null
3 => string
foo => bar
true => otro bar
false => false
*/
</script>
Te agradezco tu explicacion sobre prototipos...ya la estoy examinando:
Código Javascript
:
Ver original<script>
var a = ["1",2,3,"Pablo",4];
var r=[];
Array.prototype.algo = function(){};
for(var i in a){
r.push(i)
}
console.log(r); //["0", "1", "2", "3", "4", "algo", algo: function]
</script>
En esa modifificacion de tu script con prototipos, se perdio el orden (porque son enumerables) y descarto la llave "Pablo" por lo mismo (los alfanumericos no son enumerables) y... bueno sigue agregando algo que parece ser un callback a "algo"