JavaScript if语句。长度不起作用。为什么?
我在这里提出了一个if声明:JavaScript if语句。长度不起作用。为什么?,javascript,html,css,if-statement,conditional-statements,Javascript,Html,Css,If Statement,Conditional Statements,我在这里提出了一个if声明: var TotalMoney=0; var Orbs=0; if (TotalMoney.length==2) { Orbs+=1; } 如果“TotalMoney”值的数字长度等于2, 示例(数字10有两位数字) 然后,它将在“Orbs”值上添加1个“Orb”。目前,它什么也不做。有HTML和CSS链接到这段代码,但我认为问题出在这段代码中,因为它可以很好地处理其他所有事情。请把它修好,因为我已经试了几个小时了。谢谢 对于我的第二个问题,我刚刚通过这里的代码发现
var TotalMoney=0;
var Orbs=0;
if (TotalMoney.length==2) {
Orbs+=1;
}
如果“TotalMoney”值的数字长度等于2,
示例(数字10有两位数字)
然后,它将在“Orbs”值上添加1个“Orb”。目前,它什么也不做。有HTML和CSS链接到这段代码,但我认为问题出在这段代码中,因为它可以很好地处理其他所有事情。请把它修好,因为我已经试了几个小时了。谢谢
对于我的第二个问题,我刚刚通过这里的代码发现:
var totalMoney=0;
var orbs=0;
if (totalMoney.toString().length==2) {
orbs+=1;
}
这可以将数值位数设置为2位数。现在的问题是,一旦它达到10,每次这个数字一路上升(10-99),每次都会增加1个球体。我只希望它只有在到达2位数(10)时才添加1个球体,并在到达后停止添加1个球体。我怎样才能做到这一点?谢谢
TotalMoney
是一个数字,因此它没有length
属性。您可以通过首先转换为字符串来检查数字的长度:TotalMoney.toString()。长度
长度是数组和字符串的属性。它不能应用于其他变量
如果你想数数位数,你可以这样做
if(TotalMoney>9)
或者您可以将其转换为字符串,然后检查其长度
if(TotalMoney.toSting().length>2)
TotalMoney
是数字
因此,要找到它的长度,请使用以下代码
TotalMoney.toString().length;
而不是
TotalMoney.length;
因此,请尝试修改您的代码,如下所示:
var TotalMoney=0;
var Orbs=0;
if (TotalMoney.toString().length==2) {
Orbs+=1;
}
下面是关于代码的一些想法和一般性评论
// 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不会将一个添加到球体中。但是,正如您所提到的,totalMoney为10将是有效的。js中的Number对象没有length属性,因此
totalMoney.length
返回未定义的
如果需要计数位数,可以使用以下方法:
if (TotalMoney.toString().length == 2) {
Orbs+=1;
}
但是如果TotalMoney为负数,例如-1,则ORB将递增
我认为有更好的方法找到所有2位数字:
if (TotalMoney>9 && TotalMoney<100) {
Orbs+=1;
}
if(TotalMoney>9&&TotalMoney如果希望数字10的长度等于2..它需要是一个字符串..因此var TotalMoney=“10”;TotalMoney.length==2如果你想问一个新问题以保持答案的合理性,请问一个新问题。重复你自己的问题…这就做到了。感谢其他所有人提供的工作答案。感谢LexJacobs提供的代码注释。我还有一个问题涉及到这段代码。你会在原文中找到下一个问题我在最上面回答,谢谢!