Sunday, August 05, 2007

prototype javascript library Enumerable.each example


<script type="text/javascript" charset="utf-8">
function doc(argument) {
document.write(argument);
document.write("<br />\n");
}
var Enumerable = {
each: function(iterator) {
var index = 0;
try {
this._each(function(value) {
alert(iterator); // then alert function(i){doc(i);} every time
iterator(value, index++);
});
} catch (e) {
if (e != $break) throw e;
}
return this;
}
};
Object.extend(Array.prototype, {
_each: function(iterator) {
for (var i = 0, length = this.length; i < length; i++){
alert(iterator); // first alert function(value) {alert(iterator); iterater(value, index++);} every time
iterator(this[i]); // through here revoke follow alert
}
}
});
Object.extend(Array.prototype, Enumerable);

var a = [1, 2, 3, 4];
a.each(function (i) {
doc(i);
});
/*
var t = a.all(function (i) {
return i.constructor == Number;
})
doc('all() = ' + t); // true
var f = a.all(function (i) {
return i % 2 == 0;
})
doc('all() = ' + f); // false

var y = a.any(function (i) {
return i % 2 == 0;
})
doc('any() = ' + y); // true

var m = a.collect(function (i) {
return i * 10;
}); // Array.map
doc('inspect() = ' + m.inspect());

var fa = a.findAll(function (i){
return i % 2 == 0;
});
doc('findAll() = ' + fa.inspect());

var str = ['test1', 'test2', 'test3', 'text1', 'text2', 'text3'];
var sg = str.grep(/test/i);
doc('grep() = ' + sg.inspect());

var inc = str.include('test1');
doc('include() = ' + inc);

var sum = a.inject(0, function (s, i) {
return s + i;
});
doc('sum = ' + sum);
doc('max = ' + a.max());
doc('min = ' + a.min());
doc('first = ' + a.first());
doc('last = ' + a.last());

a = a.concat(2, 4);
doc('a = ' + a.inspect());
doc('uniq() = ' + a.uniq().inspect());*/
</script>

No comments :