2011-03-14 55 views
1

我意識到這個錯誤之前已經討論過,但其他問題的解決方案在這裏不適用。錯誤#1006:值不是函數

我有一個名爲indArray整型數組並在該數組通過循環和逗號添加到數千函數調用addCommas即9,000,而不是9000

現在,這個工作完全正常,但是,我嘗試在不同的變量上調用addCommas,它給了我這個錯誤。

這裏是我的代碼:

var string = personData[personID - 1]; 
var indArray = string.split("|"); 
var targetTotal = int(indArray[0]) + int(indArray[2]) + int(indArray[4]) + int(indArray[6]); 
var currentTotal = int(indArray[1]) + int(indArray[3]) + int(indArray[5]) + int(indArray[7]); 

for (var j=0; j<indArray.length; j++) 
{ 
    indArray[j] = addCommas(indArray[j]); 
} 
targetTotal = addCommas(targetTotal); //these two lines give the above error 
currentTotal = addCommas(currentTotal); //the pretty much identical line in the for loop does not 

和addCommas功能:

function addCommas(num) 
     { 
      var x = 1; 
      var y = 0; 
      var z = 1; 
      var c = num.split(""); 
      if (c.length < 4) 
      { 
       return c.join(""); 
      } 
      else 
      { 
       c.reverse(); 
       do 
       { 
        c.splice((x*3)+y,0,","); 
        x++; 
        y++; 
        z++; 
       } while (z<(num.length/3)); 
       c.reverse(); 
       return c.join(""); 


        } 
     } 
+0

沒關係。固定。看來addCommas函數依賴於一個字符串而不是一個int值。我將targetTotal和currentTotal轉換爲字符串並完成了它的工作 – 2011-03-14 11:10:37

回答

1

問題是你嘗試應用split()方法,以數字和整數,但是這是一個字符串的方法,所以你應該將它們轉換爲String來將它們轉換爲Strings。另一件事是你試圖使用變量作爲整數,然後作爲字符串,然後再次作爲整數,這是不好的。

嘗試嚴格鍵入您的變量,它會使一切更清晰。

這裏是一個快速參考AS3嚴格類型 http://www.seattleflashusergroup.com/ref02.htm

我希望它能幫助, 羅布