当前位置:首页 > 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
分享给朋友:

相关文章

vue实现js休眠

vue实现js休眠

Vue 中实现 JavaScript 休眠 在 Vue 中实现 JavaScript 休眠通常需要使用异步方式,以避免阻塞主线程。以下是几种常见方法: 使用 setTimeout 和 Promise…

js 实现vue模板

js 实现vue模板

实现 Vue 模板的 JavaScript 方法 通过原生 JavaScript 可以实现类似 Vue 的模板渲染功能,主要包括数据绑定、指令处理和模板解析。以下是核心实现思路: 数据绑定与响应式…

js实现轮播图

js实现轮播图

基础轮播图实现 使用HTML、CSS和JavaScript实现一个简单的自动轮播图。HTML结构包含一个容器和多个图片项。 <div class="slider"> <div…

js实现继承

js实现继承

原型链继承 通过将子类的原型指向父类的实例实现继承。子类实例可以访问父类原型上的属性和方法。 function Parent() { this.name = 'parent'; } Parent…

js实现列表

js实现列表

使用 JavaScript 实现列表 JavaScript 提供了多种方式来实现列表功能,包括数组操作、DOM 元素动态生成等。以下是几种常见的实现方法: 使用数组存储列表数据 数组是 JavaSc…

js分组实现

js分组实现

分组实现方法 在JavaScript中,可以通过多种方式实现数组或对象的分组操作。以下是几种常见的方法: 使用Array.prototype.reduce() 通过reduce方法可以轻松实现数组分…