Allow _.omit and _.pick to work as a callback for _.map when combined with _.partialRight.

This commit is contained in:
John-David Dalton
2014-02-04 00:35:14 -08:00
parent 143e9bd210
commit 201d17bc31
8 changed files with 237 additions and 152 deletions

6
dist/lodash.min.js vendored
View File

@@ -43,9 +43,9 @@ return"boolean"!=u&&null!=t&&(e=r,r=t,t=false,"number"!=u&&"string"!=u||!e||e[r]
for(t=ct(t,r,3);u--&&(r=e[u],false!==t(n[r],r,n)););return n},y.functions=tr,y.groupBy=le,y.indexBy=ce,y.initial=function(n,t,r){var e=0,u=n?n.length:0;if(typeof t!="number"&&null!=t){var o=u;for(t=y.createCallback(t,r,3);o--&&t(n[o],o,n);)e++}else e=null==t||r?1:t||e;return e=u-e,Tt(n,0,0<e?e:0)},y.intersection=function(){for(var n=[],e=-1,u=arguments.length,o=c(),i=Ot(),a=ie&&i===t,f=c();++e<u;){var l=arguments[e];(se(l)||Et(l))&&(n.push(l),o.push(a&&l.length>=A&&ie(e?n[e]:f)))}var a=n[0],s=-1,g=a?a.length:0,h=[];
n:for(;++s<g;){var v=o[0],l=a[s];if(0>(v?r(v,l):i(f,l))){for(e=u,(v||f).push(l);--e;)if(v=o[e],0>(v?r(v,l):i(n[e],l)))continue n;h.push(l)}}return p(o),p(f),h},y.invert=function(n,t){for(var r=-1,e=he(n),u=e.length,o={};++r<u;){var i=e[r],a=n[i];t?Br.call(o,a)?o[a].push(i):o[a]=[i]:o[a]=i}return o},y.invoke=function(n,t){var r=-1,e=typeof t=="function",u=n?n.length:0,o=hr(typeof u=="number"?u:0);if(3>arguments.length&&typeof u=="number")for(;++r<u;){var i=n[r];o[r]=e?t.call(i):i[t]()}else{var a=Tt(arguments,2);
ht(n,function(n){o[++r]=(e?t:n[t]).apply(n,a)})}return o},y.keys=he,y.map=Ut,y.mapValues=function(n,t,r){var e={};return t=y.createCallback(t,r,3),bt(n,function(n,r,u){e[r]=t(n,r,u)}),e},y.match=cr,y.max=Vt,y.memoize=function(n,t){function r(){var e=r.cache,u=t?t.apply(this,arguments):"_"+arguments[0];return Br.call(e,u)?e[u]:e[u]=n.apply(this,arguments)}if(!er(n))throw new jr;return r.cache={},r},y.merge=function(n,t,r){if(!ur(n))return n;var e=arguments,u=e.length,o=typeof r;if("number"!=o&&"string"!=o||!e[3]||e[3][r]!==t||(u=2),3<u&&"function"==typeof e[u-2])var i=ct(e[--u-1],e[u--],2);
else 2<u&&"function"==typeof e[u-1]&&(i=e[--u]);for(var e=Tt(arguments,1,u),o=-1,a=c(),f=c();++o<u;)wt(n,e[o],i,a,f);return p(a),p(f),n},y.min=function(n,t,r){var u=1/0,o=u,i=typeof t;if("number"!=i&&"string"!=i||!r||r[t]!==n||(t=null),null==t&&se(n))for(r=-1,i=n.length;++r<i;){var a=n[r];a<o&&(o=a)}else t=null==t&&ir(n)?e:y.createCallback(t,r,3),ht(n,function(n,r,e){r=t(n,r,e),r<u&&(u=r,o=n)});return o},y.omit=function(n,t,r){var e={};if(typeof t!="function"){var u=[];o(n,function(n,t){u.push(t)
});for(var u=st(u,mt(arguments,true,false,1)),i=-1,a=u.length;++i<a;){var f=u[i];e[f]=n[f]}}else t=y.createCallback(t,r,3),o(n,function(n,r,u){t(n,r,u)||(e[r]=n)});return e},y.once=function(n){var t,r;if(!er(n))throw new jr;return function(){return t?r:(t=true,r=n.apply(this,arguments),n=null,r)}},y.pairs=function(n){for(var t=-1,r=he(n),e=r.length,u=hr(e);++t<e;){var o=r[t];u[t]=[o,n[o]]}return u},y.partial=function(n){var t=n&&(n[N]?n[N][2]:n.length),r=Tt(arguments,1),t=t-r.length;return Ct(n,C,t,null,r)
},y.partialRight=function(n){var t=n&&(n[N]?n[N][2]:n.length),r=Tt(arguments,1),t=t-r.length;return Ct(n,O,t,null,null,r)},y.pick=function(n,t,r){var e={};if(typeof t!="function")for(var u=-1,i=mt(arguments,true,false,1),a=ur(n)?i.length:0;++u<a;){var f=i[u];f in n&&(e[f]=n[f])}else t=y.createCallback(t,r,3),o(n,function(n,r,u){t(n,r,u)&&(e[r]=n)});return e},y.pluck=pe,y.property=gr,y.pull=function(n){for(var t=arguments,r=0,e=t.length,u=n?n.length:0;++r<e;)for(var o=-1,i=t[r];++o<u;)n[o]===i&&(zr.call(n,o--,1),u--);
else 2<u&&"function"==typeof e[u-1]&&(i=e[--u]);for(var e=Tt(arguments,1,u),o=-1,a=c(),f=c();++o<u;)wt(n,e[o],i,a,f);return p(a),p(f),n},y.min=function(n,t,r){var u=1/0,o=u,i=typeof t;if("number"!=i&&"string"!=i||!r||r[t]!==n||(t=null),null==t&&se(n))for(r=-1,i=n.length;++r<i;){var a=n[r];a<o&&(o=a)}else t=null==t&&ir(n)?e:y.createCallback(t,r,3),ht(n,function(n,r,e){r=t(n,r,e),r<u&&(u=r,o=n)});return o},y.omit=function(n,t,r){var e={},u=typeof t;if("function"!=u){var i=arguments;"number"!=u&&"string"!=u||!r||r[t]!==n||(i=Tt(i),zr.call(i,1,2));
for(var a=mt(i,true,false,1),u=a.length;u--;)a[u]=kr(a[u]);var f=[];for(o(n,function(n,t){f.push(t)}),i=-1,f=st(f,a),u=f.length;++i<u;)a=f[i],e[a]=n[a]}else t=y.createCallback(t,r,3),o(n,function(n,r,u){t(n,r,u)||(e[r]=n)});return e},y.once=function(n){var t,r;if(!er(n))throw new jr;return function(){return t?r:(t=true,r=n.apply(this,arguments),n=null,r)}},y.pairs=function(n){for(var t=-1,r=he(n),e=r.length,u=hr(e);++t<e;){var o=r[t];u[t]=[o,n[o]]}return u},y.partial=function(n){var t=n&&(n[N]?n[N][2]:n.length),r=Tt(arguments,1),t=t-r.length;
return Ct(n,C,t,null,r)},y.partialRight=function(n){var t=n&&(n[N]?n[N][2]:n.length),r=Tt(arguments,1),t=t-r.length;return Ct(n,O,t,null,null,r)},y.pick=function(n,t,r){var e={},u=typeof t;if("function"!=u){var i=arguments;"number"!=u&&"string"!=u||!r||r[t]!==n||(i=Tt(i),zr.call(i,1,2));for(var u=-1,i=mt(i,true,false,1),a=ur(n)?i.length:0;++u<a;){var f=i[u];f in n&&(e[f]=n[f])}}else t=y.createCallback(t,r,3),o(n,function(n,r,u){t(n,r,u)&&(e[r]=n)});return e},y.pluck=pe,y.property=gr,y.pull=function(n){for(var t=arguments,r=0,e=t.length,u=n?n.length:0;++r<e;)for(var o=-1,i=t[r];++o<u;)n[o]===i&&(zr.call(n,o--,1),u--);
return n},y.range=function(n,t,r){n=+n||0,r=typeof r=="number"?r:+r||1,null==t&&(t=n,n=0);var e=-1;t=Hr(0,Rr((t-n)/(r||1)));for(var u=hr(t);++e<t;)u[e]=n,n+=r;return u},y.reject=function(n,t,r){return t=y.createCallback(t,r,3),Lt(n,function(n,r,e){return!t(n,r,e)})},y.remove=function(n,t,r){var e=-1,u=n?n.length:0,o=[];for(t=y.createCallback(t,r,3);++e<u;)r=n[e],t(r,e,n)&&(o.push(r),zr.call(n,e--,1),u--);return o},y.rest=It,y.shuffle=Ht,y.slice=Tt,y.sortBy=function(n,t,r){var e=-1,u=t&&se(t),o=n?n.length:0,f=hr(typeof o=="number"?o:0);
for(u||(t=y.createCallback(t,r,3)),ht(n,function(n,r,o){if(u)for(o=t.length,r=hr(o);o--;)r[o]=n[t[o]];else r=t(n,r,o);o=f[++e]=H.pop()||{f:null,g:0,h:null},o.f=r,o.g=e,o.h=n}),o=f.length,f.sort(u?a:i);o--;)n=f[o],f[o]=n.h,s(n);return f},y.tap=function(n,t,r){return t.call(r,n),n},y.throttle=function(n,t,r){var e=true,u=true;if(!er(n))throw new jr;return false===r?e=false:ur(r)&&(e="leading"in r?r.leading:e,u="trailing"in r?r.trailing:u),at.leading=e,at.maxWait=t,at.trailing=u,Yt(n,t,at)},y.times=function(n,t,r){n=-1<(n=+n)?n:0;
var e=-1,u=hr(n);for(t=ct(t,r,1);++e<n;)u[e]=t(e);return u},y.toArray=function(n){return n&&typeof n.length=="number"?Tt(n):ar(n)},y.transform=function(n,t,r,e){var u=se(n);if(null==r)if(u)r=[];else{var o=n&&n.constructor;r=lt(o&&o.prototype)}return t&&(t=y.createCallback(t,e,4),(u?ht:bt)(n,function(n,e,u){return t(r,n,e,u)})),r},y.union=function(){return jt(mt(arguments,true,true))},y.uniq=$t,y.values=ar,y.where=Lt,y.without=function(n){return st(n,Tt(arguments,1))},y.wrap=function(n,t){return Ct(t,C,null,null,[n])