6-5 WPS JS宏 集合成员迭代(随机生成试题)

示例:随机生成试题

题库:

结果:

代码:

function 试卷(){

var arr=Sheets("题库").Range("a2:b21").Value();

var s=rnd(8,1,arr.length);

var num=1;

var newarr=\[\];

for(var v of s){

newarr.push(num++,...arr\[v-1]);

//重点:通过随机出来的数字,放入到数组arrV中代替索引号,找到数组。

//arrv-1为什么要-1,是因为索引号是从0-n,随机的数字是1-n,不匹配,所以要-1。

}

Sheets("试卷").Range("a2").Resize(newarr.length,newarr0.length).Value2=newarr;

}

function rnd(counter,start,end){

var s=new Set();

if(end-start>=counter){

while(true){

var num=WorksheetFunction.RandBetween(start,end);

s.add(num);

if(s.size==counter){break};

}

}

return ...s;

}

javascript 复制代码
function 试卷(){

var arr=Sheets("题库").Range("a2:b21").Value();

var s=rnd(8,1,arr.length);

var num=1;

var newarr=[];

for(var v of s){

newarr.push([num++,...arr[v-1]]);

//重点:通过随机出来的数字,放入到数组arr[V]中代替索引号,找到数组。

//arr[v-1]为什么要-1,是因为索引号是从0-n,随机的数字是1-n,不匹配,所以要-1。



}

Sheets("试卷").Range("a2").Resize(newarr.length,newarr[0].length).Value2=newarr;

}







function rnd(counter,start,end){

var s=new Set();

if(end-start>=counter){

while(true){

var num=WorksheetFunction.RandBetween(start,end);

s.add(num);

if(s.size==counter){break};

}

}

return [...s];

}
相关推荐
ct9783 分钟前
vue2 + vue3差异点
前端·javascript·vue.js
兰令水8 分钟前
leecodecode【回溯子集】【2026.6.4打卡-java版本】
java·开发语言·深度优先
fox_lht10 分钟前
14.3.重构
开发语言·后端·rust
小徐_233313 分钟前
程序员每天盯屏 10 小时,我开始认真研究“专业编程屏”这件事
前端
悟空瞎说23 分钟前
Git 协作工作流详解:从个人单打独斗到规模化团队协同
前端·git
颜进强25 分钟前
20-Spec-Kit Tasks 是怎么把技术方案拆成可执行任务的?
前端·后端·ai编程
程序员鱼皮26 分钟前
Cursor 零基础实战教程,夯爆了!带你速通 6 大核心能力
前端·后端·ai编程
颜进强27 分钟前
14-Spec-Kit、SDD 和 OpenSpec 到底有什么区别?其实核心思想都一样:先写清楚,再让 AI 干活
前端·后端·ai编程
颜进强27 分钟前
16-Spec-Kit 是什么?先从整体流程机制讲起
前端·后端·ai编程
牛油果子哥q30 分钟前
【C++ const 】全场景深度精讲:修饰规则、底层常量折叠、指针 / 引用 / 成员函数实战、易错坑点与工程代码实现
开发语言·c++