|
[广告] Excel易用宝 - 提升Excel的操作效率 · Excel / WPS表格插件 ★ 免费下载 ★ ★ 使用帮助★
- function test(){
- const ARX = [ ["标题1", "标题2", "标题3"],
- ["A", "B", "d"],
- ["A", "d", "D"],
- [3, 6, 9],
- [3, 6, 9]
- ];
- let StrBT=""
- let data=GetQuChongArray2D(ARX,StrBT="标题1,标题2",BoolBiaoTi=true,BoolDX=false)
- let SHB=Worksheets("Sheet1")
- SHB.Range("A1:D200").ClearContents()
- SHB.Range("A1").Resize(data.length,data[0].length).Value2=data; // 粘贴数组
- }
- function GetQuChongArray2D(ARX,StrBT="",BoolBiaoTi=true,BoolDX=false){
- //函数:GetQuChongArray2D 二维数组去重 按照一列 或 多列判断
- //参数: ARX 二维数组
- //参数: StrBT 可选 判断用的标题 默认="" //全部标题, BoolBiaoTi=false //则标题使用 F1,F2,F3 代替
- //参数: BoolBiaoTi 可选 数组标题 默认=false //无标题; =true //有标题
- //参数: BoolDX 可选 区分大小写 默认=true //区分大小写; =false //不区分;
- //方法:let data=GetQuChongArray2D(ARX,StrBT="标题1,标题2",BoolBiaoTi=true,BoolDX=false);
- //作者:北极狐工作室 QQ:14885553
-
- // 复制数组以免直接修改原始数组
- let aArray =ARX;
- let data=[]; //结果数组
- let IntA=0 //数据开始行数
- let IntX=0 //数据开始行数
-
- let ZAC = new Dict(); // 字典使用示例
- if(BoolBiaoTi==true){ //是否有标题行
- IntA=1 //数据开始行数
- IntX=1 //数据开始行数
- data.push(aArray[0])
- for(let i=0;i<aArray[0].length;i++){
- data[0][i]=aArray[0][i]
- ZAC.add(aArray[0][i] ,i); //添加一对Key和Item
- }
- } else {
- //没有标题时, 用[F1],[F2],[F3] 来代替标题
- for(let i=0;i<aArray[0].length;i++){
- ZAC.add("F"+(i+1) ,i); //添加一对Key和Item
- }
- }
- let BRX=[]; //判断用的标题
- if(StrBT==""){
- BRX=ZAC.getKeys()
- } else {
- BRX=StrBT.split(",")
- }
-
- let ZAD = new Dict(); // 字典使用示例
- for(let i=IntA;i<aArray.length;i++){
- let StrX=""
- for(let y=0;y<BRX.length;y++){
- let StrA=""
- if(aArray[i][ZAC.getItem(BRX[y])]==NaN || aArray[i][ZAC.getItem(BRX[y])]=='' || aArray[i][ZAC.getItem(BRX[y])]==null || aArray[i][ZAC.getItem(BRX[y])]==undefined){
- StrX+=""
- } else {
- if(BoolDX==false){
- StrX+=aArray[i][ZAC.getItem(BRX[y])].toString().toUpperCase()
- } else {
- StrX+=aArray[i][ZAC.getItem(BRX[y])]
- }
- }
- }
- if(ZAD.hasKey(StrX)==false){
- IntX+=1
- ZAD.add(StrX,IntX); //添加一对Key和Item
- data.push(aArray[i])
- }
- }
- return data; //原封不动
- }
-
复制代码 |
|