与えられたのは、一連の条件を持つオブジェクトです:
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 ]
問題なく動作しますが、残念ながら、上記のコードは奇妙に見え、かなり混乱しています。
このコードを読みやすく理解しやすくするために、このコードを単純化するにはどうすればよいですか?