任何人都知道发生了什么事情我已经得到了代码
console.log('cCP: '+chatCurrentPlace+' - key: '+key);
if(key>chatCurrentPlace){chatCurrentPlace=key;}
console.log('cCP: '+chatCurrentPlace+' - key: '+key);
和控制台记录
cCP: 0 - key: 4
cCP: 4 - key: 4
cCP: 4 - key: 7
cCP: 7 - key: 7
cCP: 7 - key: 8
cCP: 8 - key: 8
cCP: 8 - key: 9
cCP: 9 - key: 9
cCP: 9 - key: 11
cCP: 9 - key: 11
为什么最后一个不起作用?它应该是cCP:11 - key:11
答案 0 :(得分:7)
您的一个或两个变量可能是字符串,因此将其作为字符串进行比较而不是数字。 "9" > "11"
的原因与"b" > "aa"
相同(字符串逐字符比较,直到它们不同的第一个索引)。
将值转换为测试中的数字(例如使用Unary + Operator):
if( +key > +chatCurrentPlace ){ chatCurrentPlace = key; }
if( parseInt(key, 10) > parseInt(chatCurrentPlace, 10) ){ chatCurrentPlace = key; }
您可能希望在到达if
之前转换值,以便它们始终保持数字。
答案 1 :(得分:2)
您确定密钥和cCP值不是字符串吗?看起来它们按字母顺序排序,与数字不同。 试试
key = parseInt(key,10);
在比较它们之前的两个变量。