我意识到此错误已在前面讨论过,但其他问题的解决方案并不适用于此。
我有一个名为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 :(得分:1)
问题是你试图将split()方法应用于数字和整数,但这是一个String方法,因此你应该将它们转换为String,然后将它们转换为字符串。另一件事是你试图将变量用作整数,然后用作字符串,然后再用整数,它就不好了。
尝试严格键入变量,它会使一切变得更清晰。
以下是AS3严格打字的快速参考 http://www.seattleflashusergroup.com/ref02.htm
我希望它有所帮助, 罗布