最近在看 Crockford的「JavaScript:優良部分」
如果先做一些準備...
Array.prototype.map = function (func) {
var ret = [];
for (name in this) {
if (typeof this[name] !== 'function') {
ret.push(func(this[name]));
}
}
return ret;
};
Array.prototype.filter = function (func) {
var ret = [];
for (name in this) {
if (typeof this[name] !== 'function') {
if (func(this[name]) === true) {
ret.push(this[name]);
}
}
}
return ret;
}
那麼就可以:
var xs = [-1, -2, -3, 0, 1, 2, 3];
var sq = function (num) {
return num*num;
};
var gt5 = function (num) {
return num > 5 ? true : false;
};
alert(xs.map(sq).filter(gt5).length);