2009-04-24 44 views
0

我收到一个错误,指出在下面的代码中需要一个对象。错误是:在服务器端Javascript代码中获取对象期望的错误

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; 
} 

关于我在做什么的任何想法在这里是错的?

+0

什么线是错误?错误究竟是什么意思? – marcgg 2009-04-24 21:30:44

+0

Object Expected: this.regionalRankings [worldRegion] [rankType] = this.getRankings(rankType,this.regionalRankingKey [worldRegion]); – 2009-04-24 21:31:49

回答

1

问题是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] = ... 
    } 
}  
相关问题