已知如下数组:var arr = [ [1, 2, 2], [3, 4, 5, 5], [6, 7, 8, 9, [11, 12, [12, 13, [14] ] ] ], 10];编写一个程序将数组扁平化去并除其中重复部分数据,最终得到一个升序且不重复的数组
1 解法1
<body> <script> let arr = [ [1, 2, 2], [3, 4, 5, 5], [6, 7, 8, 9, [11, 12, [12, 13, [14] ] ] ], 10]; function handlesort(arr){ let res = []; arr.map(item=>{ if(Array.isArray(item)){ res = res.concat(handlesort(item)); }else{ res.push(item); } }) let newarr = []; res.forEach(item=>{ if(!newarr.includes(item)){ newarr.push(item); } }) return newarr.sort((a,b)=>a-b); } console.log(handlesort(arr)); </script></body>
2 解法2
<body>
<script>
let arr = [ [1, 2, 2], [3, 4, 5, 5], [6, 7, 8, 9, [11, 12, [12, 13, [14] ] ] ], 10];
function handlesort(arr){
const res = arr.toString().split(",").sort((a,b)=>a-b).map(Number);
return (new Set(res));
}
console.log(handlesort(arr));
</script>
</body>