Quildreen Motta quildreen at
Sun Apr 1 16:14:47 PDT 2012

On 01/04/12 18:49, Peter van der Zee wrote:
> No idea whether this has been discussed before, but I find myself
> continuously doing this when sorting arrays with objects:
> arr.sort(function(a,b){ if (a.prop<  b.prop) return -1; if (a.prop>
> b.prop) return 1; return 0; });
> Couldn't we add an optional string argument to Array#sort that does
> this for us? If supplied do the above, otherwise behave as usual. If
> there's already a first arg planned for .sort (I haven't kept up),
> make it the second arg.
> arr.sort('prop');
I believe this would be better left for a higher-order helper function, 
given the sort function already receives a predicate:

function compareProperty(name) { return function(a, b){ return a[name]<  b[name]?  -1
                                                         :      a[name] !== b[name]?   1
                                                         :      /* otherwise */        0 }}


So, this keeps the `sort' function's semantics simple and straight-forward.

More information about the es-discuss mailing list