2014-06-16 265 views
-2

我有這樣的if語句我已經來到了這裏:JavaScript if語句.length不起作用。爲什麼?

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個orb。我只希望它只有在到達2位數字(10)時才加1個圓球,並在它達到它之後停止加1個圓球。我怎樣才能做到這一點?謝謝!

+1

如果你要的號碼10爲等於長度在2 ..它需要一個STRING ..所以VAR TotalMoney = 「10」; TotalMoney.length == 2 – webkit

+0

如果您想問一個新問題以保持答案的正確性,請提出一個新問題。 – Scimonster

+0

重複您自己的問題... http://stackoverflow.com/questions/24248311/javascript-if-statement-length-not-working-fully-why/24248613#24248613 – asimes

回答

1

TotalMoney是一個數字,所以它沒有length屬性。您可以通過首先轉換爲字符串來檢查號碼的長度:TotalMoney.toString().length

+0

這樣做了。謝謝其他人的工作答案。感謝LexJacobs的代碼評論。我有另一個涉及這個代碼的問題。您會在頂部的原始答案中找到下一個問題。謝謝! – user3295521

0

長度屬於數組& string.It不能應用於其他變量。

如果你要計算的位數,你可以做

if(TotalMoney>9) 

或者你可以將其轉換爲字符串,然後檢查它的長度

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

TotalMoney是數字 所以要找到它的長度使用此代碼

TotalMoney.toString().length; 

而不是

TotalMoney.length; 

所以儘量如下修改代碼:

var TotalMoney=0; 
var Orbs=0; 
if (TotalMoney.toString().length==2) { 
    Orbs+=1; 
} 
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; 
} 

最後,0的totalMoney不會添加一個orbs。但是,正如你所提到的,10的總金額將會。

2

js中的數字對象沒有長度屬性,所以TotalMoney.length返回undefined

如果你想算的數字,你可以使用這個:

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

但如果TotalMoney將是負面的,-1 exmple,寶珠西港島線遞增。

我認爲,這是找到所有2位數更好的辦法:

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