繁体   English   中英

如何遍历JSON,然后按键对响应排序?

[英]How would I loop through JSON and then sort a response by the key?

例如,我想遍历以下JSON,然后仅推送home_team_conference(如果它具有Southeastern字符串)。 我希望能够按home_team_conference进行排序,以便可以在网站的单独页面上使用每个数组。 现在,我正在遍历整个JSON文档,但它返回了所有这些文档,我想防止这种情况的发生。 我已经搜索了该网站和其他网站,但似乎找不到解决方案。 有任何想法吗?

{
id: "771",
api_id: "08183e9c-8abe-43a0-871e-b07a53a399f0",
status: "scheduled",
scheduled: "2017-11-22 12:00:00",
conference_game: false,
game_time_date: "2017-11-22",
game_time_hour: "12:00pm",
home_team: "Volunteers",
away_team: "Boilermakers",
venue: "Imperial Arena",
broadcast_network: "ESPN2",
broadcast_internet: "WatchESPN",
home_team_conference: "Southeastern",
away_team_conference: "Big Ten",
home_team_division: "NCAA Division I",
away_team_division: "NCAA Division I",
total_points_bet: 0
},
{
id: "772",
api_id: "342d431c-bcf0-4214-a868-40ebaae75feb",
status: "scheduled",
scheduled: "2017-11-22 13:00:00",
conference_game: false,
game_time_date: "2017-11-22",
game_time_hour: "1:00pm",
home_team: "Pioneers",
away_team: "Mariners",
venue: "William H. Pitt Center",
broadcast_network: "",
broadcast_internet: "",
home_team_conference: "Northeast",
away_team_conference: "New England Collegiate Conference",
home_team_division: "NCAA Division I",
away_team_division: "NCAA Division III",
total_points_bet: 0
},

现在,我正在这样做以遍历:

var test = [];
    // This gets the game JSON and returns it so you can use it below.
    function getGames(){
        return $.getJSON('https://--------------.--------.com/dbdata/gameday/division');
    }
    getGames().done(function(results){
        $.each(results, function (i, gameData){
            $.each(gameData, function(key, game){
            test.push(game);
            var gameId = game.id;
            var homeTeam = game.home_team;
            var awayTeam = game.away_team;
            var pointTotal = game.total_points_bet;
            var gameTime = game.game_time_hour;
            var gameDate = game.game_time_date;
            var network = game.broadcast_network;

据我了解,您是否想从其中home_team_conference = "Southeastern"的数组中home_team_conference = "Southeastern"项目列表

这将为您提供球队列表,其中home_team_conference = "Southeastern"

let southeastern = teamArray.filter((team) => team.home_team_conference == "Southeastern")

console.log(southeastern)

我不确定您想要的排序功能是什么,因为home_team_conference所有项目在该列表中都相同。 如果对整个列表进行排序,则可以执行以下操作:

// Change "home_team_conference" to something else to sort by that
teamArray.sort((a,b) => {
    if (a.home_team_conference < b.home_team_conference) { return -1; }
    if (a.home_team_conference > b.home_team_conference) { return 1; }
    // names must be equal
    return 0;
})
console.log(teamArray)

如果需要不区分大小写的搜索,请使用.toLowerCase()将两个比较均转换为小写

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM