Given 是一个具有一系列条件的对象:
var conditions = {
even: function (i) { return i % 2 == 0; },
greatherThan: function (i) { return i > 10; },
inValidRange: function (i) {
return i > 20 && i < 100;
}
};
以及从 0 到 39 范围内的数组编号:var numbers = _.range(0, 40);
。
我想numbers
按每个条件过滤。我使用 underscore.js 来做到这一点:
var result = _.filter(numbers, function(current) {
return _.all(_.values(conditions), function(f) {
return f(current);
});
});
// returns [ 22, 24, 26, 28, 30, 32, 34, 36, 38 ]
它工作正常,但不幸的是,上面的代码看起来很奇怪,而且很混乱。
如何简化此代码以使其更具可读性和可理解性?