StationsSort.sort(function(s1,s2) {
// some code
})
Это не функция. Функцией является сам метод sort(), которому можно передать функцию как параметр, которая будет указывать как сортировать элементы. А StationsSort является объектом который нужно отсортировать. И вызывается метод sort() в данном блоке кода, а не где то еще.
Для примера:
let arr = [5, 4, 7, 2, 1, 8, 6, 0];
arr.sort((a, b) => {
if (a < b) {
return -1;
} else if (a > b) {
return 1;
} else {
return 0;
}
}); // [0, 1, 2, 4, 5, 6, 7, 8]
PS. Для начала приведите код в нормальный вид, согласно какому нибудь code style. Сейчас же в вашем коде черт ногу сломит.
Сделайте хотя бы так:
$.get(URL + '/stations.json', function(data) {
var j1 = 0;
$.each(data, function(j1) {
Stations[this.sindex] = this;
StationsSort[j1] = this;
j1++;
});
var date = new Date();
dstmp = date.getTime();
$.each(StationsSort, function() {
lastMsg = Math.floor(dstmp / 1000) - this.last_at;
style = '';
if (lastMsg < 10800) {
style = "style=\"background: #8affbb;\"";
}
StationsSort.sort(function(s1, s2) {
if (s1.sindex > s2.sindex)
return 1;
if (s1.sindex < s2.sindex)
return -1;
else
return 0;
});
$('#station-list').append("<div " + style + " class='st-btn' title='" + EncodeHTML(this.station_name) + "' onclick=\"StationProcess(this, '" + EncodeHTML(this.sindex) + "')\">" + EncodeHTML(this.sindex) + ' - ' + EncodeHTML(this.station_name) + "</div>");
});
});