Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/html/73.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
JavaScript if语句。长度不起作用。为什么?_Javascript_Html_Css_If Statement_Conditional Statements - Fatal编程技术网

JavaScript 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链接到这段代码,但我认为问题出在这段代码中,因为它可以很好地处理其他所有事情。请把它修好,因为我已经试了几个小时了。谢谢 对于我的第二个问题,我刚刚通过这里的代码发现

我在这里提出了一个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.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提供的代码注释。我还有一个问题涉及到这段代码。你会在原文中找到下一个问题我在最上面回答,谢谢!