第一种方法
var arr=[[1,2,2],[3,4,5,5],[6,7,8,9,[11,12,[12,13,[14]]]],10];
function fn(arr){
return arr.reduce(function(a,b){
return a.concat(Array.isArray(b) ? fn(b) : b);
},[]);
}
const myArray = fn(arr);
const array1 = [...new Set(myArray)] //去重
console.log(array1.sort((a, b)=>{ //排序
return a - b;
}))
第二种方法
var arr=[[1,2,2],[3,4,5,5],[6,7,8,9,[11,12,[12,13,[14]]]],10];
var newarr = JSON.stringify(arr);
newarr = newarr.replace(/\[|\]/g,''); //正则匹配去掉“[" 和"]"
var newarr1 = undefined;
newarr1 = JSON.parse('['+newarr+']');
function noRepeat(newarr1){
// 第一层for用来控制循环的次数
for(var i=0; i<newarr1.length; i++){
//第二层for 用于控制与第一层比较的元素
for( var j=i+1; j<newarr1.length; j++){
if(newarr1[i] == newarr1[j]){
newarr1.splice(j,1);
j--; //删除后面的 即第 j个位置上的元素 删除个数 1 个
}
}
}
return newarr1;
}
var aa = noRepeat(newarr1);
aa.sort(function(a,b){ // sort 升序
return a-b;
});
console.log(aa);
第三种方法
var arr=[[1,2,2],[3,4,5,5],[6,7,8,9,[11,12,[12,13,[14]]]],10];
var newarr2 = undefined;
newarr2 = eval('['+arr+']');
function noRepeat2(newarr2){
var newArray = [];
for(var m=0; m<newarr2.length; m++){
if(newArray.indexOf(newarr2[m])==-1){
newArray.push(newarr2[m]);
}
}
return newArray;
}
var aa1 = noRepeat2(newarr2);
aa1.sort(function(a,b){
return a-b;
});
console.log(aa1);