var DistinctPredicate = function () { var previous = []; return function ( data ) { var isDistinct = !_.any( previous, function ( p ) { if ( _.isObject( data ) || _.isArray( data ) ) { return _.isEqual( data, p ); } return data === p; } ); if ( isDistinct ) { previous.push( data ); } return isDistinct; }; };