已知如下数组:var arr = [ [1, 2, 2], [3, 4, 5, 5], [6, 7, 8, 9, [11, 12, [12, 13, [14] ] ] ], 10];
编写一个程序将数组扁平化去并除其中重复部分数据,最终得到一个升序且不重复的数组
解法1:利用ES6 API求解
function foo(arr){var newArr=arr.flat(Infinity);newArr= [...new Set(newArr)];newArr.sort((a,b)=>a-b);}
解法2:递归+遍历
function flatSetSort(params) {let arr = [];function flat(pars) {if (Array.isArray(pars)) {pars.forEach(flat)}else {if (arr.indexOf(pars) === -1) {arr.push(pars)}}}flat(params);return arr.sort((a, b) => a - b);}
