fi.without = function without(is, e, m) { switch(e) { case "__empty__": e = _.not(_.isEmpty); m = 'filter'; } return _[ m || 'without' ]( is , e ); };
return _.map(is, function(i) { i = _[m || 'pick']( rp? i[rp] : i, ps ); return _.filter(_.without(_.values(i), undefined), _.not(_.isEmpty)).length === ps.length ? i : {}; });