JSFiddle - React, Tailwind, and code Playground

CSS

123   321
a<b  -1     1
a>b   1    -1
a=b   0     0

JavaScript

var members = [
    	{ 'name': 'A', 'group':'Bird', 'rank': 1, 'age': 24},
    	{ 'name': 'D', 'group':'Bird', 'rank': 4, 'age': 27},
    	{ 'name': 'C', 'group':'Fox',  'rank': 2, 'age':  9},
    	{ 'name': 'B', 'group':'Wolf', 'rank': 3, 'age': 13},
    	{ 'name': 'B', 'group':'Wolf', 'rank': 3, 'age': 2},
    	{ 'name': 'C', 'group':'Fox',  'rank': 2, 'age':  9},
    	{ 'name': 'C', 'group':'Fox',  'rank': 2, 'age':  9}
    ];
    
var sortJSON = function (arr, key, way) {
  return arr.sort(function(a, b) {
    var x = a[key], y = b[key];
    if (way==='123') { return ((x<y)? -1 : ((x>y)?1:0)); }
    if (way==='321') { return ((x>y)? -1 : ((x<y)?1:0)); }
  });
};

var sortJSON2 = function (arr, key, way) {
  return arr.sort(function (a,b) {
  
    var w=way==='123', x=a[key], y=b[key];
    return x === y? 0
      :w && x<y || !w && x>y?-1
      :1;
      
   /* return a[key] === b[key]? 0
      :way==='123' && a[key]<b[key] || way!=='123' && a[key]>b[key]?-1
      	:1; */
  });
};

var copyArr = function(arr) {return JSON.parse(JSON.stringify(arr)); }
var print= function (arr,comment) {
		str = "[\n"+arr.map(function(item) { return JSON.stringify(item)+'\n' } ) +'];';
    console.log(str,arr);
 }

var A = copyArr(members), 
		A = sortJSON2(A, 'rank', '123');
print(A);
var B = copyArr(members),
		B = sortJSON2(B, 'rank', '321');
print(B);
var C = copyArr(members),
		C = sortJSON2(C, 'age', '123');
print(C);
var D = copyArr(members),
		D = sortJSON2(D, 'age', '321');
print(D);
var E = copyArr(members),
		E = sortJSON2(E, 'name', '123');
print(E);
var F = copyArr(members),
		F = sortJSON2(F, 'name', '321');
print(F);