消防安全知识答题活动小程序v4.2.0

消防安全知识答题活动小程序v4.2.0

v4.2.0

1)JavaScript-数组乱序

数组乱序在实际开发过程中是可能碰到的,比如消防安全知识答题活动小程序中实现乱序抽题或者选项乱序。

我们一开始可能会想到利用数组的sort方法,判断随机出来的0-1的值与0.5的大小,实现排序。该方法实现如下:

var arr = [1, 2, 3, 4, 5, 6];

arr.sort(function(){
    return Math.random() - 0.5;
});

console.log(arr)

上面的实现方法看起来很完美地实现了乱序的需求,但实际的效果如何我们还是要进行测试。

但要实现真正意义上的乱序,这就要提到经典的洗牌算法Fisher–Yates_shuffle。简单的说:就是随机抽一个放到最后。把剩余的数继续抽,继续放到次后......依次执行。

function shuffle(array) {
	var j, x, i;
	for (i = array.length; i; i--) {
		j = Math.floor(Math.random() * i);
		x = array[i - 1];
		array[i - 1] = array[j];
		array[j] = x;
	}
	return array;
}

2)实现选项乱序

按照这个思路和技术方案,先写一段功能代码实现看看,测试调试一下。

js代码:

onLoad: function (options) {
    // ......省略

    let count = this.generateArray(0, this.data.questionList.length - 1); 
    this.setData({
      shuffleIndex: this.shuffle(count).slice(0, 10) // 生成随机题序并进行截取
    })
  },
  /*
  * 数组乱序/洗牌
  */
  shuffle: function (arr) {
    var j, x, i;
    for (i = array.length; i; i--) {
      j = Math.floor(Math.random() * i);
      x = array[i - 1];
      array[i - 1] = array[j];
      array[j] = x;
    }
    return array;
  },
  /**
   * 生成一个从 start 到 end 的连续数组
   */
  generateArray: function (start, end) {
    return Array.from(new Array(end + 1).keys()).slice(start)
  },

v4.1.0

1)支持多选题

扫描二维码关注公众号,回复: 15199059 查看本文章

2)支持填空题

v3.0.0

1)升级功能:

  • 答题页、结果页界面,增加展示微信头像和昵称栏目√
  • 由仅支持单选,升级为支持单选、判断、多选题型 √
  • 排行榜页排名机制,优化为取个人最佳成绩进行排名√
  • 各界面及功能一些小优化√

2)拓展功能:

  • 注册登录页 √
  • 错题集 √
  • 题库学习 √
  • 查看用户的答题成绩以及答题情况-管理员 √
  • 查看所有用户的答题记录-管理员 √
  • 后台题库管理系统-管理员 √
  • 题目增删查改-管理员 √

3)基于v2.0拓展升级:

  • 排行榜页
  • 活动规则页
  • 答题记录页
  • 首页、答题页、结果页
  • 微信授权登录
  • 获取微信头像和昵称等
  • 实现页面间跳转功能
  • 实现转发分享答题成绩功能
  • 题库随机抽题
  • 查询历史成绩
  • 实现用云开发实现查询题库功能
  • 实现动态题目数据绑定
  • 答题交互逻辑
  • 切换下一题
  • 系统自动判分
  • 提交答卷保存到云数据库集合
  • 答题结果页从云数据库查询答题成绩
  • 题库学习
  • 注册登录页
  • 支持单选、判断题型
  • 错题集
  • 查看用户的答题成绩以及答题情况-管理员
  • 查看所有用户的答题记录-管理员
  • 后台管理-管理员
  • 后台数据监控-管理员

v2.0.0

  • 活动规则页
  • 排行榜页
  • 答题记录页
  • 题库随机抽题
  • 微信授权登录
  • 获取微信头像和昵称等
  • 首页、答题页、结果页
  • 实现页面间跳转功能
  • 实现转发分享答题成绩功能
  • 实现用云开发实现查询题库功能
  • 实现动态题目数据绑定
  • 答题交互逻辑
  • 切换下一题
  • 系统自动判分
  • 提交答卷保存到云数据库集合
  • 查询历史成绩
  • 答题结果页从云数据库查询答题成绩

猜你喜欢

转载自blog.csdn.net/qq_29528701/article/details/130944265