我正在尝试使用以下 json 文件按种子顺序创建 NBA 西部领袖的简单显示:
http://data.nba.com/data/v2014/json/mobile_teams/nba/2014/00_standings.json
现在我有以下内容:
$(document).ready(function() {
$.getJSON('http://data.nba.com/data/v2014/json/mobile_teams/nba/2014/00_standings.json',function(info){
var eastHead = info.sta.co[0].val;
var divi = info.sta.co[0].di[0].val;
/*evaluate East*/
for(i=0;i < divi.length;i++){
var visTeam ='<li>' + divi + '</li>';
document.getElementById("eastHead").innerHTML=eastHead;
}
var seed = info.sta.co[0].di[0].t[0].see;
$.each(menuItems.data, function (i) {
var eastSeed ='<li>' + seed + '</li>';
console.log(eastSeed)
document.getElementById("eastSeed").innerHTML=eastSeed;
});//$.each(menuItems.data, function (i) {
});//getJSON
});//ready
我只想按顺序列出领导者。所以现在我们有
- Golden State
2. Memphis
3. Houston
4. Portland
5. L.A. Clippers
6. Dallas
.... and so forth.
这是基于“see”的值,在西方意味着种子。
这个问题是我得到的是单个值而不是迭代值。
更新:
$(document).ready(function() {
$.getJSON('http://data.nba.com/data/v2014/json/mobile_teams/nba/2014/00_standings.json',function(info){
/**************************************************/
//Get info above here
var westDivision = info.sta.co[1].di;
westDivision.forEach(function (subdivision)
{
subdivision.t.forEach(function (team)
{
westTeams.push({
city: team.tc,
name: team.tn,
seed: team.see
});
});
});
function compare(a,b) {
if (a.see < b.see)
return -1;
if (a.see > b.see)
return 1;
return 0;
}
var sorted = westTeams.sort(compare);
sorted.forEach(function (el,i)
{
console.log(i+'. '+el.city+' '+el.name);
});
/**************************************************/
});//getJSON
});//ready
控制台输出:
- 波特兰开拓者队
- 俄克拉荷马雷霆队
- 丹佛掘金队
- 犹他爵士
- 明尼苏达森林狼队
- 金州勇士队
- 洛杉矶快船队
- 菲尼克斯太阳队
- 萨克拉门托国王队
- 洛杉矶湖人队
- 孟菲斯灰熊队
- 休斯顿火箭队
- 达拉斯小牛队
- 圣安东尼奥马刺队
- 新奥尔良鹈鹕
最佳答案
我喜欢使用 forEach 进行迭代。不必担心索引,您可以直接引用数组的每个项目。
使用此代码,您可以将所需数据放入数组中。
//Get info above here
var westTeams = [];
var westDivision = info.sta.co[1].di;
westDivision.forEach(function (subdivision)
{
subdivision.t.forEach(function (team)
{
westTeams.push({
city: team.tc,
name: team.tn,
seed: team.see
});
});
});
然后您可以使用 obj.sort
对它们进行排序
function compare(a,b) {
if (a.seed < b.seed)
return -1;
if (a.seed > b.seed)
return 1;
return 0;
}
var sorted = westTeams.sort(compare);
最后,您可以按顺序打印它们。
sorted.forEach(function (el,i)
{
console.log((i+1)+'. '+el.city+' '+el.name);
});
关于javascript - 使用 jquery 基于值的 JSON 迭代,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/28662321/