Получение ожидаемой ошибки объекта в коде JavaScript на стороне сервера - PullRequest
0 голосов
/ 25 апреля 2009

Я получаю сообщение о том, что в приведенном ниже коде ожидается объект. Ошибка:

Object Expected: this.regionalRankings[worldRegion][rankType] = this.getRankings(rankType, this.regionalRankingKey[worldRegion]);

Объявления ...

    this.regions = {};
    this.regions = ["US", "Europe", "Asia"];    
    this.regionalRankingKey = ["SP500", "GBE", "CNG"]; //this is the ranking model key for pulling up the rankings object.
    this.rankingTypes = ["gainers", "losers", "actives"];
    this.regionalRankings = {};
    this.rankingWSODIssues = [];

    marketSummary_data.prototype.initRankingsNew = function(){

    for(var worldRegion in this.regions){        

        for (var rankType in this.rankingTypes){

            //this is the line getting the error.
            this.regionalRankings[worldRegion][rankType] = this.getRankings(rankType, this.regionalRankingKey[worldRegion]);

            for(var i = 0; i < 5; i++){

                this.rankingWSODIssues.push(this.regionalRankings[worldRegion][rankType].value("Result[0].Row[" + i + "].WSODIssue"));

            }
        }    
    }

    for(var item in this.rankingWSODIssues){

        Response.Write("<p>" + item + ": " + rankingWSODIssues[item] + "</p>");

    }    
}

функция this.getRankings возвращает объект.

    marketSummary_data.prototype.getRankings = function(rankingType, rankingSet){
    //ranking types Epctchg+ (pct gainers) 
    //Epctchg- (pct losers) 
    //Edollar+ (net gainers) 
    //Edollar- (net losers) 
    //Evol+ (highest volume) 

    //rankingSets    

    if (rankingType == "gainers"){
        rankingType = "Epctchg+";
    }
    if (rankingType == "losers"){
        rankingType = "Epctchg-";
    }
    if (rankingType == "actives"){
        rankingType = "Evol+";
    }

   var rankings = User.CreateObject("WIT.Rankings.1")

       rankings.SetVariableName("Rankings")
       rankings.SetInput("Ranking.RT", 0)
       rankings.SetInput("Ranking.Type", rankingType)
       rankings.SetInput("Ranking.Set", rankingSet)
       rankings.SetInput("Ranking.Rows", 5)
       rankings.SetInput("Ranking.Symbolset", "BridgeStreet");
       rankings.SetInput("Ranking.MinPrice", 0);  // only want stocks trading higher> 0
       rankings.Retrieve();    

   return rankings;
}

Есть идеи о том, что я здесь делаю не так?

1 Ответ

1 голос
/ 25 апреля 2009

Проблема в том, что this.regionalRankings[worldRegion][rankType] требует, чтобы this.regionalRankings[worldRegion] было чем-то, однако this.regionalRankings является пустым объектом, поэтому "Требуется объект".

Я думаю, что вы намеревались сделать:

for(var worldRegion in this.regions){        
    this.regionalRankings[worldRegion] = {}; // Make it into an object.
    for (var rankType in this.rankingTypes){
        this.regionalRankings[worldRegion][rankType] = ...
     }
 }    
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...