JSFiddle - React, Tailwind, and code Playground

HTML

<pre class='t'>
</pre>

JavaScript

var sArray = [{
    season: 1,
    episode: 2,
    notes: "..."
}, {
    season: 1,
    episode: 2,
    notes: "..."
}, {
    season: 1,
    episode: 1,
    notes: "..."
}, {
    season: -1,
    episode: -1,
    notes: "..."
}, {
    season: -1,
    episode: -1,
    notes: "..."
}, {
    season: -1,
    episode: -1,
    notes: "..."
}, {
    season: 3,
    episode: 1,
    notes: "..."
}, {
    season: 13,
    episode: 12,
    notes: "..."
}, {
    season: 2,
    episode: 1,
    notes: "..."
}];

sArray.sort(function (a, b) {
    var aSize = a.season,
        bSize = b.season,
        aLow = a.episode,
        bLow = b.episode;

    if (a.season == b.season) {
        return (a.episode < b.episode) ? -1 : (a.episode > b.episode) ? 1 : 0;
    } else {
        return (a.season < b.season) ? -1 : 1;
    }
});

var c=sArray.length,
    i=0,
    sfArray={};

for(i=0;i<c;i++){
    var key='S'+((sArray[i].season<10 && sArray[i].season>-1)? '0'+sArray[i].season:sArray[i].season)+' E'+((sArray[i].episode<10 && sArray[i].episode>-1)? '0'+sArray[i].episode:sArray[i].episode);
    if(!(key in sfArray))
         sfArray[key]=[];
     sfArray[key].push(sArray[i]);
}

$('.t').append(sfArray.toSource());