首页 > 解决方案 > 需要帮助替换数组中可被 3 和 5 整除的数字

问题描述

我正在尝试打印数字 1-100,同时将数组中的任何可被 3 整除的数字替换为字符串“Ping”,将任何可被 5 整除的数字替换为“Pong”,如果有一个数字可以被 3 和 5 整除为换成“PingPong”这个词。所以数字 3 应该说 Ping,而不是数字 5,它应该说 Pong 等等。

这是我的代码,我看不到哪里出错了:

任何帮助将不胜感激!

  const numCount = document.querySelector('.count');
  const button = document.querySelector('.num-count');


  const numArr = []

  for (let i = 1; i <= 100; i++) {
      if (numArr[i] % 3 == 0) {
          numArr[i] == "Ping"
      } else if (numArr[i] % 5 == 0) {
          numArr[i] == "Pong"
      } else if (numArr[i] % 3 == 0 && numArr[i] % 5 == 0) {
          numArr[i] == "PingPong"
      };
      numArr.push(i);

  };
  button.addEventListener('click', () => {
      numCount.textContent = numArr;
  });
.count {
        font-size: 12px;
        padding-top: 30px;
    }
<!DOCTYPE html>
<html lang="en">
<head>

    <meta charset="UTF-8">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <title>Document</title>
</head>
<body>
    <button class="num-count">Click Me!</button>
    <div class="count"></div>


</body>
</html>

标签: javascriptarrays

解决方案


  1. 删除 else if 并添加 if。
  2. 使用赋值运算符分配不相等运算符
for(let i = 1; i <= 100; i++) {
    if (numArr[i] % 3 == 0) {
        numArr[i] = "Ping"
    }
    if (numArr[i] % 5 == 0) {
        numArr[i] = "Pong"
    }
    if (numArr[i] % 3 == 0 && numArr[i] % 5 == 0) {
        numArr[i] = "PingPong"
    }
    else{
      numArr.push(i);
    }
}

推荐阅读