我需要在for循环中使用if语句替换一个值。确切的说明是:

<script></script>元素添加到
该页面首先使用<head>选择介于1(包括)和110(包括)之间的随机整数
功能。然后,您的代码应将1到(但不包括)随机整数中的每个整数写入到
页上的数字29、71和105除外,这些数字应清楚说明(即“二十九”,“七十一”,
“一百五十五”)。您需要使用while循环或for循环进行迭代,并使用条件语句
打印特殊情况。
例:


  1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26
  27 28二十九30 31 32 33 34 35


到目前为止,我有这个脚本

<script>
var display = Math.floor(1 + Math.random() * 110);

for(var i=1; i < display; i++)
document.writeln(i);



if (i >= 29)
{
//[29] = "twenty-nine"
    document.write(i[29].replace(29, "twenty-nine"));
}
if (i >= 71)
{
    document.write("seventy-one ");
}
if (i >= 105)
{
    document.write("one-hundred-five ");
}

</script>


我无法弄清楚当数字不在指定数组中时如何替换它们。

最佳答案

您在循环中遇到问题,因为您没有在循环中使用块,而是仅在循环中执行for之后的立即语句。

同样,您的if条件不是正确的,因为它们与greater than or equals to进行比较而不是检查是否相等。

但是您可以简化如下所示的逻辑



var display = Math.floor(1 + Math.random() * 110),
  specials = {
    29: 'twenty-nine',
    71: 'seventy-one',
    105: 'one-hundred-five'
  };

for (var i = 1; i < display; i++)
  document.writeln(specials[i] || i);







使您的代码正常工作



var display = Math.floor(1 + Math.random() * 110);
for (var i = 1; i < display; i++) {//for block
  if (i == 29) {
    document.writeln("twenty-nine");
  } else if (i == 71) {
    document.writeln("seventy-one ");
  } else if (i == 105) {
    document.writeln("one-hundred-five ");
  } else {
    document.writeln(i);
  }
}

10-05 21:13
查看更多