【问题标题】:Getting Object Expected Error in Server Side Javascript Code在服务器端 Javascript 代码中获取对象预期错误
【发布时间】:2009-04-24 21:11:01
【问题描述】:

我收到一条错误消息,指出以下代码中需要一个对象。错误是:

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

关于我在这里做错了什么有什么想法吗?

【问题讨论】:

  • 错误在哪一行?错误到底说了什么?
  • 预期对象:this.regionalRankings[worldRegion][rankType] = this.getRankings(rankType, this.regionalRankingKey[worldRegion]);

标签: javascript object


【解决方案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] = ...
     }
 }    

【讨论】:

  • 这是正确的。我正在研究同样的问题,你比我早了几分钟。 +1
  • 这确实是正确的。我现在知道每次都要检查这个。谢谢!
猜你喜欢
  • 1970-01-01
  • 2014-08-09
  • 2019-01-17
  • 2012-06-16
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2013-05-01
  • 1970-01-01
相关资源
最近更新 更多