下面的代码为我完成的游戏创建了排行榜,我唯一不能让它做的事情是自动将分数从高到低排序。我认为我需要将对象放入一个数组中,然后对它们进行排序,只是不确定如何进行。
function createLeaderboard() {
var html;
html = "<table>";
html += "<tbody>";
html += "<th>Username</th>";
html += "<th>Rank</th>";
html += "<tr>";
for(var val in localStorage){
if (localStorage.getItem(val) !== null && localStorage.getItem(val) !== localStorage.getItem('UsrLoggedIn')){
var rankData = $.parseJSON(localStorage.getItem(val));
//console.log(rankData); This will allow you to see the rank data object in your console
$(rankData).each(function() {
html += "<td>" + rankData.username + "</td>";
html += "<td>" + rankData.rank + "</td> </tr>";
});
}
}
html += "</tbody>";
html += "</table>";
$('#rank').append(html);发布于 2018-12-14 09:30:50
您可以首先检索rankData,然后对其执行sort操作,最后循环遍历已排序的数组。
function createLeaderboard() {
var html;
html = "<table>";
html += "<tbody>";
html += "<th>Username</th>";
html += "<th>Rank</th>";
html += "<tr>";
var array = [];
for (var val in localStorage) {
if (localStorage.getItem(val) !== null && localStorage.getItem(val) !== localStorage.getItem('UsrLoggedIn')) {
array.push($.parseJSON(localStorage.getItem(val)));
}
}
array.sort(function (a, b) {
return a.rank - b.rank;
});
array.forEach(function (rankData) {
html += "<td>" + rankData.username + "</td>";
html += "<td>" + rankData.rank + "</td> </tr>";
});
html += "</tbody>";
html += "</table>";
$('#rank').append(html);
}https://stackoverflow.com/questions/53772332
复制相似问题