Side navigation
#9944 closed enhancement (plugin)
Opened July 30, 2011 07:51PM UTC
Closed March 10, 2012 04:25AM UTC
Pass new array as third argument to jQuery.grep and jQuery.map callbacks
Reported by: | anonymous | Owned by: | |
---|---|---|---|
Priority: | low | Milestone: | None |
Component: | misc | Version: | 1.6.2 |
Keywords: | needsreview | Cc: | |
Blocked by: | Blocking: |
Description
Providing the new Array being constructed via jQuery.grep()
to the callback provided would allow inquiry into the new Array that could be useful when determining the return value.
https://github.com/jquery/jquery/blob/1.6.2/src/core.js#L722
Change:
retVal = !!callback( elems[ i ], i );
to:
// added new Array as arg-----v retVal = !!callback( elems[ i ], i, ret );
Possible usage example:
var arr = $.grep( $('div').map(function() { return $(this).attr('rel'); } ).get(), function( v, i, arr ) { return $.inArray( v, arr ) === -1; } // exclude dupes );
**jsfiddle:** http://jsfiddle.net/b7hDr/
I would also be inclined to suggest this for jQuery.map()
:
var arr = $.map($('div'), function( v, i, arr ) { var rel = $(v).attr('rel'); return $.inArray( rel, arr ) === -1 ? rel : void 0; });
**jsfiddle:** http://jsfiddle.net/b7hDr/1/
...although I don't know if it would interfere with the internal arg
parameter.
https://github.com/jquery/jquery/blob/1.6.2/src/core.js#L742
// make room for "ret"?------v value = callback( elems[ i ], i, ret, arg );
https://github.com/jquery/jquery/blob/1.6.2/src/core.js#L752
// make room for "ret"?----------v value = callback( elems[ key ], key, ret, arg );
Attachments (0)
Change History (2)
Changed August 18, 2011 06:41AM UTC by comment:1
component: | unfiled → misc |
---|---|
keywords: | → needsreview |
priority: | undecided → low |
status: | new → open |
Changed March 10, 2012 04:25AM UTC by comment:2
resolution: | → plugin |
---|---|
status: | open → closed |
Sorry but we don't need to complicate this highly-used code for edge cases. It would be better to do this as a plugin with the additional semantics.
I don't have any particular opinions on this enhancement, but I'm moving this to either the vote queue or for further review.