The built-in
sort
method takes a function which is passed two elements from the array and returns a value indicating their relative positions in the sorted list.
Array.prototype.sort() - JavaScript | MDN[
^]
You can't pass extra parameters to that function. But you could perhaps use a closure.
Closures - JavaScript | MDN[
^]
For example:
function dateComparer(order){
return function(left, right) {
var a = left.date.split('.').reverse().join('');
var b = right.date.split('.').reverse().join('');
return order === "asc" ? a.localeCompare(b) : b.localeCompare(a);
};
}
var arr = [ {date: '02.01.2017'}, {date: '11.11.2016'}, {date: '12.02.2001'} ];
arr.sort(dateComparer('desc'));