第6章JS集合与映射在 WPS的应用
6-1WPS JS宏 new Set集合的创建
new set:
集合就是一组值,与数组类似,但集合没有索引,没有顺序,不能重复(具有唯一性),会自动去除重复数据。
参数:var=new set(集合内容)
基础测试
function test(){
var s1=new Set();//空集合
//结果:s1=0;Set/object
var s2=new Set("a","b","c","b");//用数组构造成集合
//结果s2=3;Set/object
var s3=new Set("aabbbcddff");//可迭代对象转换为集合
//结果s3=5;Set/object
var s4=...s3;//集合转换为数组
//结果s4="a","b","c","d","f";Array/object
var s5=...new Set(\["a","b","c","b")];//集合转换为数组
//结果s5="a","b","c";Array/object
}
示例:
原数组与结果:

代码:
function test1(){
var arr=Range("b2:h4").Value();
Console.log(`${arr0}`)
//方法一:集合变为一维数组\[\]套一维数组\[\],在用join去除一个一维\[\].
//var newarr=arr.map(ar=>\[...new Set(ar).join(",")]);
//方法二:集合变为一维数组\[\]套一维数组\[\],在用flat()打平变为一维数组\[\].
var newarr=arr.map(ar=>\[...new Set(ar)]).flat();
Console.log(`${newarr0}`)
//判断有多少列
var nam=newarr.map(v=>v.length).reduce((x,y)=>x>y?x:y)
//自动选择区域写入数组内容
Range("a7").Resize(newarr.length, nam).Value2=newarr;
}
javascript
function test1(){
var arr=Range("b2:h4").Value();
Console.log(`${arr[0]}`)
//方法一:集合变为一维数组[]套一维数组[],在用join去除一个一维[].
//var newarr=arr.map(ar=>[[...new Set(ar)].join(",")]);
//方法二:集合变为一维数组[]套一维数组[],在用flat()打平变为一维数组[].
var newarr=arr.map(ar=>[[...new Set(ar)]]).flat();
Console.log(`${newarr[0]}`)
//判断有多少列
var nam=newarr.map(v=>v.length).reduce((x,y)=>x>y?x:y)
//自动选择区域写入数组内容
Range("a7").Resize(newarr.length, nam).Value2=newarr;
}