随机生成一份试卷,试卷的种类分为单选、多选、判断三种题型。nodejs6.0 mysql

背景:从数据库中,随机生成一份试卷,试卷的种类分为单选、多选、判断三种题型。

首先我需要生成随机数id(在这之前我需要知道数据库中各个题型的题数,这样我才能设置随机数),并依据生成的随机数id,去查找对应的题目。而在js的数组操作中,有filter、splice、concat、every、find等等。我需要从数据库中取出特定的数据,而我返回的是一组对象,那么我需要过滤出特定的部分。

代码如下:

var danxuan = getRandomNum(danxuan_count,20);var duoxuan = getRandomNum(duoxuan_count,5);var panduan = getRandomNum(panduan_count,10);将生成的随机数存到example中,var example = {danxuan:danxuan.sort(sortNumber),duoxuan:duoxuan.sort(sortNumber),panduan:panduan.sort(sortNumber)}
//查找数据库models.Answer.findAll().then(function(result){    var danxuanList = result.filter(t => t.exampleType=="单选题");//nodejs6.0支持 =>    var duoxuanList = result.filter(t => t.exampleType=="多选题");    var panduanList = result.filter(t => t.exampleType=="判断题");  //新建对象    var exampleList = {duoxuan:[],danxuan:[],panduan:[]};   //根据随机生成的编号id,去各个list中找相应的数据    example.danxuan.forEach(function(i,v){

        exampleList.danxuan.push(danxuanList[i]);    })    example.duoxuan.forEach(function(i,v){        exampleList.duoxuan.push(duoxuanList[i]);    })    example.panduan.forEach(function(i,v){        exampleList.panduan.push(panduanList[i]);    })    res.json(exampleList);//试卷生成完毕});
时间: 2024-10-08 20:04:32

随机生成一份试卷,试卷的种类分为单选、多选、判断三种题型。nodejs6.0 mysql的相关文章

随机生成不重复的数

class Program {  static void Main(string[] args) {   Console.WriteLine("请输入要生成随机数的范围1-?"); //接收用户输入的字符   string str=Console.ReadLine ();    int it; //尝试转换用户输入的是否能转换成整型,转换成功赋值给it   bool b = int.TryParse(str, out it);   if (b == true)   {    Conso

随机生成30道100以内的四则运算题

设计思路: 1.利用随机数法随机生成两个随机数 1.1控制随机数在100以内 1.2随机数不等于0 2.运算符的问题 1.1运用求余方式得到的1,2,3,4分别表示“+”,“-”,“*”,“/” 3.真分数的表示方法 1.1还是利用随机数法生成两个随机数 1.2比较生成的随机数的大小,小的作为分子,大的作分母,得到真分数 4.输出运算结果,用1,2分别表示整数运算和有真分数参与的运算 在有真分数参与时,是在一定程度上的随机,并不是完全的随机,有待改进 代码: #include <iostream

数组 冒泡排序 打印菱形 随机生成不同的数

判断一个数是否是质数  对这个数从1到这个数挨着取余 如果取余等于零则计数+1,所以当计数=2是  那么说明这个数只能被一和它本身整除 所以它是质数 打印菱形  每一行首先打印空格  然后打印符号 先打印上半部分 然后下半部分 这时候中间两行出现重复 那么需要去掉一行 数组 冒泡排序 首先定义数组 利用for循环把值输入到数组里边 后利用两个for循环 把数组里的数挨个比较 排序 如果a[i]<a[i+i] 然后进行交换 那么是降序输出 如果a[i]>a[i+1] 然后交换了  那么是升序排列

selenium + python自动化测试unittest框架学习(七)随机生成姓名

在自动化测试过程中经常要测试到添加用户的操作,每次都要输入中文,原本是找了十几个中文写成了列表,然后从列表中随机取出填入用户名文本框中,随着测试的增加,发现同名的人搜索出来一大堆,最后在网上找了个随机生成姓名的方法,在此记录下,学习来源:https://segmentfault.com/q/1010000006941249 姓氏和名字的列表: import random import string last_names = ['赵', '钱', '孙', '李', '周', '吴', '郑',

python操作redis之随机生成18位身份证号码

写一个随机生成身份证号的程序,输入多少条就产生多少个,?把产生完的数据写到redis里面,key用哈希类型?Xiaohei 410881198312031241 其中配置文件confsetting.py里的常量有: # 系统常量,包含: # LAST_NAME: 姓 # FIRST_NAME: 名 # STATE_CODE:全国大陆地区及编码 REDIS_IP = '172.16.2.163' RedisIp REDIS_PORT = 6379 REDIS_PASSWD = '222333' R

判断随机生成的四则运算结果

功能:1.随机生成一个四则运算 2.用户输入式子结果后判断是否正确(结果取整) #include<stdio.h> #include<string.h> #include<stdlib.h> #include<stack> using namespace std; int n,t,n1; struct ZX { char a; bool b;//if b=0 括号 if b=1 数字 } ; stack<ZX>s1; void atersz(ZX

js选择颜色小游戏(随机生成不含重复数字的数组,通过数组中的数控制定义好的数组)

<!DOCTYPE html><html> <head> <meta charset="utf-8"> <title>js网页版小游戏</title> <style media="screen"> .wrap { width: 577px; outline: 1px solid hotpink; margin: 100px auto; box-shadow: 0 0 5px; } .

python随机生成6位数验证码

#随机生成6位数验证码 import randomcode = []for i in range(6):    if i == str(random.randint(1,5)):        code.append(i)    else:       temp =  random.randint(65,90)       code.append(chr(temp)) print ''.join(code) ###扩充random用法,随机生成树,和程序无关 print random.rando

python内置的一个好玩的函数-zip,并且巧妙的实现按概率随机生成有限个数的字符串。

python有一个比较有意思的内置函数-----zip,可以把传入的两组list进行一个组合变形,再输出子元素为tuple的list,不过变形的方式比较抽象. 举个例子: A=[1,2,3,4,5,6] B=['a','b','c','d'] v1=zip(A,B) v1的结果为: [(1, 'a'), (2, 'b'), (3, 'c'), (4, 'd')] 比较直观的理解就是,A和B是两道拉链上的扣子,生成的list的子tuple,每一组tuple就是一对扣好了的扣子,并且从每组list的