ikemonn's blog

技術ネタをちょこちょこと

【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に渡している。

参考

jashkenas/underscore