0

NFL の 2012 年のスケジュールを含むオブジェクトを構築しようとしています。オンラインで CSV を見つけたので、毎週ゲームを追加しようとしている場合を除いて、問題なく解析できます。コードが毎週実行された後にスケジュールをコンソール ログに記録すると、16 (byes に応じて) ではなく、1 つのゲーム (最後のゲーム) のみが取得されます。

注: 通常、プロトタイプはここではなくソース ファイルに配置しますが、明確にするためにそれらを含めました。

ボーナス: オブジェクトが完成したら投稿します。:D

これが私のコードです:

String.prototype.trim = function() {
    return this.replace(/^\s+|\s+$/g,"");
}

String.prototype.capitalize = function() { 
    return this.substr(0, 1).toUpperCase() + this.substr(1);
}

Object.prototype.getKeys = function(obj){
    var keys = [];
    for(var key in obj){
        keys.push(key);
    }
    return keys;
}

Array.prototype.contains = function(obj) {
    var i = this.length;
    while (i--) {
        if (this[i] == obj) {
            return true;
        }
   }
   return false;
}

var AppController = {};

//create a schedule object
AppController.Schedule = {};
var schedule = AppController.Schedule;

    var scheduleArray = nflschedule.split(":::");

    //set a game count so we can give each game an id
    var gameCount = -1;

    for(var i=0; i<scheduleArray.length; i++) { 

        gameCount++;

        //filter out first line
        if (i>0) { 

            //get a game
            var thisGameItems = scheduleArray[i].split(",");

            //game date
            var gameDate = thisGameItems[0];

            //week number
            var colonSplitPattern = new RegExp("^[^:]+(?=:)");
            var weekNumPattern=new RegExp("\Week(.*)");
            var weekNum = "Week" + thisGameItems[2].match(colonSplitPattern).toString().match(weekNumPattern)[1].trim();
            //get teams and game day
            var homeTeam = thisGameItems[thisGameItems.length-3].trim();
            var visitingTeam = thisGameItems[thisGameItems.length-2].trim();
            var weekDay =   thisGameItems[thisGameItems.length-1].trim().capitalize();

            //check Schedule and see if we have this weekNum as key, if not add it
            var gameWeeks = schedule.getKeys();
            if (gameWeeks.contains(weekNum) == false) { 
                schedule[weekNum] = {};
            }

            var thisWeeksGames = schedule[weekNum];
            //add games to the game week
            thisWeeksGames[gameCount] = {

                GameDate: gameDate,
                GameWeek: weekNum,
                HomeTeam: homeTeam,
                VisitingTeam: visitingTeam,
                GameDay: weekDay,
                HomeTeamScore : "",
                VistingTeamScore : ""

            }

        }
    }

console.log(schedule);
4

0 に答える 0