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