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.