Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/405.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript JSON文件使我的头版上出现了20个玩得最多的游戏_Javascript_Json - Fatal编程技术网

Javascript JSON文件使我的头版上出现了20个玩得最多的游戏

Javascript JSON文件使我的头版上出现了20个玩得最多的游戏,javascript,json,Javascript,Json,我有一个jsonurl(),我正试图在头版上显示名称、图片、slug和平台。我有一个想法,比如对玩得最多的游戏进行排序,然后将id放入数组中。但我不知道如何首先对他们的玩家数量进行排序,然后将他们的id保存在一个数组中 代码: let数组=['] 函数排序(x){ var交换=真; while(交换){ 交换=假; for(设i=0;ix[i+1]){ 设newnmb=x[i+1]; x[i+1]=x[i]; x[i]=newnmb; 交换=真; } } } } 用于(第1页;第{ 返回resp

我有一个jsonurl(),我正试图在头版上显示名称、图片、slug和平台。我有一个想法,比如对玩得最多的游戏进行排序,然后将id放入数组中。但我不知道如何首先对他们的玩家数量进行排序,然后将他们的id保存在一个数组中

代码:

let数组=[']
函数排序(x){
var交换=真;
while(交换){
交换=假;
for(设i=0;ix[i+1]){
设newnmb=x[i+1];
x[i+1]=x[i];
x[i]=newnmb;
交换=真;
}
}
}
}
用于(第1页;第{
返回response.json()
})
。然后(数据=>{
设i=0
while(data.results[i]){
if(数据类型.results[i].按状态添加状态。播放=='undefined'){
}
否则{
array.push(data.results[i]。按状态添加状态。播放);
}
我++
}
排序(数组)
})
}

您的代码如下所示:

// your result from the API
const resultObject = {};
let resultArray = [];
// transform JSON object to an array
Object.keys(resultObject).forEach((key, index) => {
  resultArray.push(resultObject[key]);
});

// comparator
function sortByPlayerCount(firstEl, secondEl) {
  return firstEl.added_by_status.playing - secondEl.added_by_status.playing;
}

// sort array by player count
resultArray.sort(sortByPlayerCount);

您应该等到收到所有页面后,使用并等待结果

对于播放计数排序,请使用

小示例,请参见代码中的注释

异步函数getGames(最大值=10){ //临时举行运动会 让游戏=[]; //页数 对于(让page=1;page response.json())。然后((数据)=>{ //对于响应中的每个游戏 data.results.forEach((值)=>{ //推送到tmp阵列 游戏。推(值); }) }); } //返回游戏 返回游戏; } //得到并等待所有的游戏 getGames()。然后((所有游戏)=>{ //按游戏时间对游戏进行排序 allGames.sort((a,b)=>(a.playtime例如(让toShow=0;toShow您能给我们展示一个您试图排序的数组的示例吗?@torquan刚刚修改了我的代码示例数据。您不需要编写自己的排序函数。您可能会得到一个对象(?)您应该在数组中转换它,然后使用array.sort(comparator)对该数组进行排序.你的比较器会比较玩家编号,@Reporter你是说从json url?
// your result from the API
const resultObject = {};
let resultArray = [];
// transform JSON object to an array
Object.keys(resultObject).forEach((key, index) => {
  resultArray.push(resultObject[key]);
});

// comparator
function sortByPlayerCount(firstEl, secondEl) {
  return firstEl.added_by_status.playing - secondEl.added_by_status.playing;
}

// sort array by player count
resultArray.sort(sortByPlayerCount);