如果Statement .length无效的JavaScript。为什么?

时间:2014-06-16 05:56:32

标签: javascript html css if-statement conditional-statements

我有这个if if声明我在这里提出:

var TotalMoney=0;
var Orbs=0;
if (TotalMoney.length==2) {
Orbs+=1;
}

这段代码应该做的是" TotalMoney"值数字长度等于2, 示例(数字10有2位数) 然后它会添加1" Orb"到了" Orbs"值。目前,它什么都不做。有HTML和CSS链接到这个代码,但我认为问题在于此代码,因为它适用于其他一切。请修理它,因为我已经尝试了几个小时。谢谢!

我的第二个问题,我刚刚在这里找到了这段代码:

var totalMoney=0;
var orbs=0;
if (totalMoney.toString().length==2) {
orbs+=1;
}

这适用于将数字值数字设为2位数。现在的问题是,一旦达到10,每当这个数字一直上升(10-99)时,每次都会增加1个圆球。我只想在它到达2位数字(10)时添加1个圆球,并在到达它后停止添加1个圆球。我怎样才能实现这一目标?谢谢!

5 个答案:

答案 0 :(得分:3)

TotalMoney是一个数字,因此它没有length属性。您可以先转换为字符串来检查号码的长度:TotalMoney.toString().length

答案 1 :(得分:2)

js中的数字对象没有长度属性,因此TotalMoney.length返回undefined

如果你想要计算数字,你可以使用它:

if (TotalMoney.toString().length == 2) {
    Orbs+=1;
}

但如果TotalMoney为负数,则为-1,例如,Orbs将递增。

我认为有更好的方法可以找到所有2位数字:

if (TotalMoney>9 && TotalMoney<100) {
    Orbs+=1;
}

答案 2 :(得分:1)

TotalMoney是数字 所以要找到它的长度使用这段代码

TotalMoney.toString().length;

而不是

TotalMoney.length; 

因此请尝试修改您的代码,如下所示:

var TotalMoney=0;
var Orbs=0;
if (TotalMoney.toString().length==2) {
    Orbs+=1;
}

答案 3 :(得分:0)

长度是阵列和属性的属性。 string。它不能应用于其他变量。

如果你想计算你可以做的位数

if(TotalMoney>9)

或者您可以将其转换为字符串,然后检查它的长度

if(TotalMoney.toSting().length>2)

答案 4 :(得分:0)

以下是您的代码的一些想法和一般性评论。

// recommended to start with lower case. upper case such as 'TotalMoney'
// is stylistically reserved for constructors.
var totalMoney=0; 

// again - changing form Orbs to orbs;
var orbs=0;

// recommended to use '===' until you are more experienced with JavaScript and
// know about the 'gotchas' that '==' might produce.

// you will be able to check the length of totalMoney only after converting it to a string.
if (totalMoney.toString().length === 2) {
orbs+=1;
}

最后,totalMoney为0将不会向orbs添加一个。但正如你所提到的那样,总金额为10美元。