【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にプロパティの値を渡す。