javascript (<) 中的小于运算符的工作方式小于或等于 [重复]

Posted

技术标签:

【中文标题】javascript (<) 中的小于运算符的工作方式小于或等于 [重复]【英文标题】:the less than operator in javascript (<) is working as less or equals to [duplicate] 【发布时间】:2021-11-05 02:11:24 【问题描述】:

此代码应该使用 while 循环和 if 语句在 javascript 中显示给定名称的随机字符/字母。 . . 我面临的问题是 RandomLetterIndex 介于 0 和 5 (

const MyName = "Ayman";
var RandomLetterIndex = Math.floor(Math.random() * 10);

while (RandomLetterIndex > MyName.length) 
  RandomLetterIndex = Math.floor(Math.random() * 10);
  if (RandomLetterIndex < MyName.length && RandomLetterIndex !== 5) 
    break
  


console.log(RandomLetterIndex);
console.log(MyName.charAt(RandomLetterIndex));

【问题讨论】:

你不需要那个while循环。只需调整您的随机器:const RandomLetterIndex = Math.floor(Math.random() * (MyName.length - 0) + 0); 并简单地记录结果。 【参考方案1】:

如果你希望随机数小于单词的长度,而不是使用while循环,你可以这样做

var RandomLetterIndex = Math.floor(Math.random()*MyName.length);

乘以长度而不是 10 确保值始终位于 [0, length-1] 而不是 [0, 10-1] 范围内

【讨论】:

【参考方案2】:

问题在于基于 0 的索引和长度属性。 MyName.length 将等于 5,因此 while 循环将停止并且控制台打印出来。

while (RandomLetterIndex &gt; MyName.length - 1)

用负1试试这个。

【讨论】:

【参考方案3】:

当 RandomLetterIndex 为 5 时,您的 while 循环结束。这就是您在控制台中看到 5 的原因。

另外,你打破了循环,因此 while 检查有点没用。

【讨论】:

以上是关于javascript (<) 中的小于运算符的工作方式小于或等于 [重复]的主要内容,如果未能解决你的问题,请参考以下文章

Javascript 运算符优先级

javascript关系运算符与逻辑运算符

JavaScript关系运算符 赋值运算符

JavaScript运算符及数据类型

JavaScript的条件运算符与条件语句

比较运算符