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

    解法1:利用ES6 API求解

    1. function foo(arr){
    2. var newArr=arr.flat(Infinity);
    3. newArr= [...new Set(newArr)];
    4. newArr.sort((a,b)=>a-b);
    5. }

    解法2:递归+遍历

    1. function flatSetSort(params) {
    2. let arr = [];
    3. function flat(pars) {
    4. if (Array.isArray(pars)) {
    5. pars.forEach(flat)
    6. }
    7. else {
    8. if (arr.indexOf(pars) === -1) {
    9. arr.push(pars)
    10. }
    11. }
    12. }
    13. flat(params);
    14. return arr.sort((a, b) => a - b);
    15. }