1. 已知如下数组:
  2. var arr = [ [1, 2, 2], [3, 4, 5, 5], [6, 7, 8, 9, [11, 12, [12, 13, [14] ] ] ], 10];
  3. 编写一个程序将数组扁平化去并除其中重复部分数据,最终得到一个升序且不重复的数组

1 解法1

  1. <body>
  2. <script>
  3. let arr = [ [1, 2, 2], [3, 4, 5, 5], [6, 7, 8, 9, [11, 12, [12, 13, [14] ] ] ], 10];
  4. function handlesort(arr){
  5. let res = [];
  6. arr.map(item=>{
  7. if(Array.isArray(item)){
  8. res = res.concat(handlesort(item));
  9. }else{
  10. res.push(item);
  11. }
  12. })
  13. let newarr = [];
  14. res.forEach(item=>{
  15. if(!newarr.includes(item)){
  16. newarr.push(item);
  17. }
  18. })
  19. return newarr.sort((a,b)=>a-b);
  20. }
  21. console.log(handlesort(arr));
  22. </script>
  23. </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>