Testing Iteration of object keys & values
by Bruno G.
JavaScript
//Ajoute une méthode 'diff' à l'objet array pour soustraire un vecteur d'un autre
// utilisation : [1, 2, 3, 4, 5].diff([2, 3, 5]); ==> [1, 4]
Array.prototype.diff = function(a) {
return this.filter(function(i) {return !(a.indexOf(i) > -1);});
}
//Élimine les doublons d'un vecteur
// http://dreaminginjavascript.wordpress.com/2008/08/22/eliminating-duplicates/
Array.prototype.unique = function() {
var i,len=this.length,out=[],obj={};
for (i=0;i<len;i++) obj[this[i]]=0;
for (i in obj) out.push(i);
return out;
}
Object.prototype.keys = function() {
var keys = [];
for(var key in this) {
console.log('k', key);
if(this.hasOwnProperty(key)) keys.push(key);
}
return keys;
};
Object.prototype.length = function() {
var size = 0, key;
for (key in this) {
console.log('s', key);
if (this.hasOwnProperty(key)) size++;
}
return size;
};
Object.prototype.iterateKeys = function(worker){
var keys = [];
for (var key in this) {
if (this.hasOwnProperty(key)) keys.push(key);
}
for (var i = 0; i < keys.length; i++) {
worker(keys[i], this[ keys[i] ]);
}
}
var bru = [];
bru['aaa'] = 'askdla';
bru['bbb'] = 'sdfs';
//alert(bru.length());
/*var k = bru.keys();
alert(k);
var t;
for (t=0; t<k.length; t++) {
alert('for'+bru[k[t]]);
}*/
bru.iterateKeys(function(k, v){
alert('K = '+k+' & V = '+v);
});