Javascript 如何按业力对Reddit用户进行排序?

Javascript 如何按业力对Reddit用户进行排序?,javascript,arrays,api,sorting,Javascript,Arrays,Api,Sorting,我无法根据用户的业力对其进行排序。你们能帮忙吗?(站点:)我想根据totalKarma对用户的div元素进行排序。还有一种很好的方法可以在后台刷新数据,这样就不必加载整个页面(如用户图标) var排行榜=document.getElementById('leadboard'); 因果报应; 后业力; var用户名; var用户图标; var-userUrl; var usersloaded=[]; var userskarma=[]; var usersIcon=[]; var users=[

我无法根据用户的业力对其进行排序。你们能帮忙吗?(站点:)我想根据totalKarma对用户的div元素进行排序。还有一种很好的方法可以在后台刷新数据,这样就不必加载整个页面(如用户图标)

var排行榜=document.getElementById('leadboard');
因果报应;
后业力;
var用户名;
var用户图标;
var-userUrl;
var usersloaded=[];
var userskarma=[];
var usersIcon=[];
var users=['sloth_on u meth'、'filiptronicek'、'cigarkovic'、'gallowboob'、'Tooshifty for you'、'Actual_crazy_irl'、'haxpress';
函数updateStats(){
leadboard.innerHTML='';
users.forEach(mainfunc);
}
updateStats();
函数mainfunc(用户){
$.getJSON('https://www.reddit.com/user/“+user+”/about.json”,函数(数据){
commentKarma=data.data.comment\u karma;
postKarma=data.data.link\u karma;
总业=评论业+后业;
用户名=用户;
userIcon=data.data.icon\u img;
userUrl='0https://reddit.com/u/“+用户名;
Leadboard.innerHTML+=
“



”+ totalKarma.tolocalesting()+ "因果报应",; usersloaded.push(用户); userskarma.push(totalKarma); usersIcon.push(userIcon); //console.log(用户); //console.log(usersIcon); 排序(函数(a,b){ 返回a-b; }); //console.log(userskarma); }) .done(函数(){ 返回; }) .fail(函数(){ console.log('加载错误'+用户); }) .always(函数(){ //console.log('已完成加载'+用户); }); }
@导入url('https://fonts.googleapis.com/css?family=Roboto');
* {
保证金:0;
填充:0;
}
usr先生{
宽度:150px;
高度:35px;
填充物:4.5em;
填充底部:250px;
}
#排行榜{
宽度:95%;
高度:35px;
填充:0.5em;
}
#排行榜>部门{
浮动:左;
}
img{
边界半径:10px;
}
a{
文字装饰:无;
颜色:#ff4500;
}

您可以这样做。创建一个数组
usersloaded
,其中包含具有
userName
userIcon
userUrl
等属性的用户对象。然后,您将更容易根据
totalKarma
属性对对象进行排序,并像以前一样创建HTML

var排行榜=document.getElementById('leadboard');
因果报应;
后业力;
var用户名;
var用户图标;
var-userUrl;
var usersloaded=[];
用户=[
“懒惰在吸毒”,
“filiptronicek”,
“雪茄味”,
“gallowboob”,
“Tooshifty for you”,
“实际上是疯了”,
“haxpress”
];
函数updateStats(){
leadboard.innerHTML='';
users.forEach(mainfunc);
}
updateStats();
函数mainfunc(用户){
$.getJSON('https://www.reddit.com/user/“+user+”/about.json”,函数(数据){
commentKarma=data.data.comment\u karma;
postKarma=data.data.link\u karma;
总业=评论业+后业;
用户名=用户;
userIcon=data.data.icon\u img;
userUrl='0https://reddit.com/u/“+用户名;
usersloaded.push({
用户,
用户名,
用户图标,
用户URL,
完全业力
});
加载数据(usersloaded);
})
.done(函数(){
返回;
})
.fail(函数(){
console.log('加载错误'+用户);
})
.always(函数(){
//console.log('已完成加载'+用户);
});
}
函数加载数据(usersloaded){
Leadboard.innerHTML=“”
usersloaded.sort((a,b)=>a.totalKarma-b.totalKarma)
.forEach(u=>{
Leadboard.innerHTML+=
“



”+ u、 totalKarma.tolocalesting()+ "因果报应",; }) }
@导入url('https://fonts.googleapis.com/css?family=Roboto');
* {
保证金:0;
填充:0;
}
usr先生{
宽度:150px;
高度:35px;
填充物:4.5em;
填充底部:250px;
}
#排行榜{
宽度:95%;
高度:35px;
填充:0.5em;
}
#排行榜>部门{
浮动:左;
}
img{
边界半径:10px;
}
a{
文字装饰:无;
颜色:#ff4500;
}

您的代码并没有试图重新排列div,它只是在请求返回时附加到正文中。在高层,您需要创建一个对象数组,对它们进行排序,并在排序后打印它们

请注意,我对您的代码进行了最小的更改以使其正常工作,但您将从代码审查中获益


var排行榜=document.getElementById('leadboard');
因果报应;
后业力;
var用户名;
var用户图标;
var-userUrl;
var usersloaded=[];
var userskarma=[];
var usersIcon=[];
用户=[
“懒惰在吸毒”,
“filiptronicek”,
“雪茄味”,
“gallowboob”,
“Tooshifty for you”,
“实际上是疯了”,
“haxpress”
];
var userObjs=[];
函数updateStats(){
leadboard.innerHTML='';
users.forEach(mainfunc);
}
updateStats();
函数mainfunc(用户){
$.getJSON('https://www.reddit.com/user/“+user+”/about.json”,函数(数据){
commentKarma=data.data.comment\u karma;
postKarma=data.data.link\u karma;
总业=评论业+后业;
用户名=用户;
userIcon=data.data.icon\u img;
userUrl='0https://reddit.com/u/“+用户名;
userObjs.push({
因果报应,,
后业力,
全业,
用户名,
用户图标,
用户URL
});
if(userObjs.length==users.length){
排序((a,b)=>a.totalKarma-b.totalKarma);
leadboard.innerHTML=userObjs.map(用户=>{
返回“



”+ user.totalKarma.toLocaleString()+ "因果报应",; }).加入(“”); } Leadboard.innerHTML+= “



”+ totalKarma.tolocalesting()+ "因果报应",; usersloaded.push(用户); userskarma.pu