当前位置:首页 > JavaScript

js实现报数

2026-03-14 07:00:17JavaScript

报数游戏实现

报数游戏通常指轮流报数,遇到特定数字(如3的倍数)时跳过。以下是JavaScript实现方案:

基础实现

function countOff(maxNumber, skipMultiple) {
  const result = [];
  for (let i = 1; i <= maxNumber; i++) {
    if (i % skipMultiple === 0 || String(i).includes(skipMultiple)) {
      result.push("拍手");
    } else {
      result.push(i);
    }
  }
  return result;
}
console.log(countOff(10, 3)); // 输出: [1, 2, "拍手", 4, 5, "拍手", 7, 8, "拍手", 10]

扩展功能版本

class CountingGame {
  constructor(rules = {multiple: 3, contains: true}) {
    this.rules = rules;
  }

  generateSequence(n) {
    return Array.from({length: n}, (_, i) => this._checkNumber(i + 1));
  }

  _checkNumber(num) {
    const {multiple, contains} = this.rules;
    const shouldSkip = 
      (multiple && num % multiple === 0) || 
      (contains && String(num).includes(multiple));

    return shouldSkip ? "跳过" : num;
  }
}

// 使用示例
const game = new CountingGame();
console.log(game.generateSequence(15));

递归实现方案

function recursiveCount(current, max, skip, acc = []) {
  if (current > max) return acc;

  const replacement = 
    current % skip === 0 || `${current}`.includes(skip) ? "拍桌" : current;

  return recursiveCount(current + 1, max, skip, [...acc, replacement]);
}

实现要点

  • 使用取模运算符%检测倍数关系
  • 通过String.includes()检测数字包含
  • 可扩展为支持多种规则(倍数、包含数字、自定义替换词)
  • 注意边界条件处理(如0或负数输入)

典型应用场景

js实现报数

  • 儿童数学游戏开发
  • 面试逻辑题实现
  • 团队破冰活动工具
  • 数字敏感度训练程序

以上实现可根据实际需求调整规则,如修改跳过的数字条件或替换动作。对于大规模数字处理,建议使用迭代而非递归方式以避免调用栈溢出。

标签: js
分享给朋友:

相关文章

js图片轮播的实现

js图片轮播的实现

基础图片轮播实现 使用HTML、CSS和JavaScript实现一个简单的图片轮播效果。HTML部分定义轮播容器和图片,CSS负责样式和过渡效果,JavaScript处理逻辑。 <div cl…

实现继承js

实现继承js

实现继承的方式 在JavaScript中,实现继承可以通过多种方式完成,每种方式都有其优缺点。以下是几种常见的实现继承的方法: 原型链继承 原型链继承是最基本的继承方式,通过将子类的原型指向父类的实…

js 实现递归

js 实现递归

递归的基本概念 递归是指函数直接或间接调用自身的过程。在JavaScript中,递归通常用于解决可以分解为相似子问题的问题,如阶乘、斐波那契数列、树形结构遍历等。 递归的实现要点 基线条件(Base…

js实现删除

js实现删除

使用 splice 方法删除数组元素 splice 方法可以删除数组中的元素,并返回被删除的元素。它接受两个参数:起始索引和要删除的元素数量。 const array = [1, 2, 3, 4…

js 实现日历

js 实现日历

实现日历的基本思路 日历的核心功能是展示日期,并允许用户进行日期选择或导航。JavaScript 可以动态生成日历的 HTML 结构,并处理用户交互逻辑。 基础日历结构 日历通常包含头部(显示月份和…

js实现div隐藏

js实现div隐藏

使用CSS的display属性隐藏div 通过设置元素的display属性为none,可以完全隐藏div元素。这种方法不仅隐藏元素,还会从文档流中移除,不占据页面空间。 document.getEl…