【Underscore.js】_.rejectを読んだ
jashkenas/underscoreの_.rejectを読んだ。
概要
_.reject(list, predicate, [context])
listの中で、predicateがfalseになる要素の配列を返す。 _.filterの反対のことをする関数。
var list = [1, 2, 3, 4, 5]; var x = _.reject(list, function(n) { return n % 2 === 0; }); console.log(x); // [1, 3, 5]
ソースコード
_.reject = function(obj, predicate, context) { return _.filter(obj, _.negate(cb(predicate)), context); }; _.negate = function(predicate) { return function() { return !predicate.apply(this, arguments); }; };
negateで元の関数のtrue, falseを反対にして返し、それをfilterに渡している。