ikemonn's blog

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

【Underscore.js】_.filterを読んだ

jashkenas/underscore_.fliterを読んだ。

概要

リストを走査し、渡した関数がtrueとなる要素のリストを返す。

var list = [1, 2, 5, 6, 7];
// var list = {age: 1, score: 30, test: 88};

var x = _.filter(list, function(num){
    return num % 2 === 0;
});

console.log(x); // [2, 6]

ソースコード

_.filter = _.select = function(obj, predicate, context) {
    var results = [];
    predicate = cb(predicate, context);
    _.each(obj, function(value, index, list) {
      if (predicate(value, index, list)) results.push(value);
    });
    return results;
  };

内部で使用している_.eachはオブジェクトを渡すとpredicateにプロパティの値を渡す。

参考

jashkenas/underscore