JSFiddle - React, Tailwind, and code Playground

HTML

1) Order by "name" DESC, "population" ASC
<br><textarea id="log1" rows="10" cols="50"></textarea>

JavaScript

//--------------------------------------------
// Sort Object's Array by key1, key2
//   ary    : Array [{},{},{}...]
//   key1   : string
//   order1 : string "asc"(default) or "desc"
//   key2   : string
//   order2 : string "asc"(default) or "desc"
//--------------------------------------------
function ObjArraySort2(ary, key1, order1, key2, order2) {
    var reverse1 = 1;
    var reverse2 = 1;
    if(order1 && order1.toLowerCase() == "desc") 
        reverse1 = -1;
    if(order2 && order2.toLowerCase() == "desc") 
        reverse2 = -1;
    
    ary.sort(function(a, b) {
        // Compare 1st key
		if(a[key1] < b[key1])
            return -1 * reverse1;
        else if(a[key1] > b[key1])
            return 1 * reverse1;
		else
        {
            // Compare 2nd key
            if(a[key2] < b[key2])
                return -1 * reverse2;
            else if(a[key2] > b[key2])
                return 1 * reverse2;
            else
                return 0;
        }
	});
}

//--------------------------------
// Demo Code
//--------------------------------
// Test Array
var prefectures = [
	{name:"Saitama",  population:7237734},
	{name:"Aichi",    population:7444513},
	{name:"Osaka",    population:8850607},
	{name:"Kanagawa", population:9098984},
	{name:"Tokyo",    population:13378584},
	{name:"Test",     population:200},
	{name:"Test",     population:300},
	{name:"Test",     population:100},
];
// 1) Sort by "name","population" DESC
ObjArraySort2(prefectures, "name", "desc", "population", "asc");
// Output
var log1 = "";
for(var i in prefectures) {
	log1 += i + " : " + prefectures[i]["name"] + " : " + prefectures[i]["population"] + "\n";
}
document.getElementById("log1").value = log1;