JSFiddle - React, Tailwind, and code Playground

by ryanbrill

JavaScript

var arr = [
    {
        "playerName": "Stack",
        "leaguePoints": 100,
        "wins": 280,
        "miniSeries": {
            "progress": "WNN",
            "losses": 0,
            "wins": 3
        }
    },
    {
        "playerName": "Stack",
        "leaguePoints": 100,
        "wins": 280,
        "miniSeries": {
            "progress": "WNN",
            "losses": 0,
            "wins": 2
        }
    },
    {
        "playerName": "Overflow",
        "leaguePoints": 90,
        "wins": 280
    },
    {
        "playerName": "Overflow",
        "leaguePoints": 80,
        "wins": 280
    },
    {
        "playerName": "Overflow",
        "leaguePoints": 95,
        "wins": 280
    },
    {
        "playerName": "StackOverflow",
        "leaguePoints": 0,
        "wins": 120
    },
    {
        "playerName": "StackOverflow",
        "leaguePoints": 0,
        "wins": 110
    }
];

arr = arr.sort(function(a,b) {
    if (a.leaguePoints != b.leaguePoints) {
        if(a.leaguePoints < b.leaguePoints) {
            return 1;   
        }
        if(a.leaguePoints > b.leaguePoints) {
            return -1;
        }
        return 0;
    }
    
    switch(a.leaguePoints) {
        case 100: 
            var agames = a.miniSeries.wins + a.miniSeries.losses,
                bgames = b.miniSeries.wins + b.miniSeries.losses;
            //console.log(agames, bgames);
            if (agames < bgames)
                return 1;
            if (agames > bgames)
                return -1;
            return 0;
        case 0:
            if (a.wins < b.wins)
                return 1;
            if (a.wins > b.wins)
                return -1;
            return 0;
        default:
            if (a.leaguePoints < b.leaguePoints)
                return 1;
            if (a.leaguePoints > b.leaguePoints)
                return -1;
            return 0;
    }
});

console.log(arr);