第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(`${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;
}
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;
}