ES6

  1. // 扁平化
  2. array.flat(Infinity);
  3. // 去重
  4. Array.from(new Set());
  5. // 升序
  6. array.sort((a, b) => a - b);

ES5

  1. // 扁平化
  2. function flat(items){
  3. var result = [];
  4. items.map(function(item){
  5. if(Array.isArray(item)){
  6. result = result.concat(loop(item));
  7. }
  8. else{
  9. result.push(item);
  10. }
  11. });
  12. return result;
  13. }
  14. // 去重
  15. function unique(arr){
  16. var result = [], temp = {};
  17. arr.map(function(item){
  18. if(!temp[item]){
  19. result.push(item);
  20. temp[item] = true;
  21. }
  22. })
  23. return result;
  24. }
  25. // 排序 (快排,冒泡等)
  26. array.sort(function(a, b){
  27. return a - b;
  28. });

测试数据

  1. // 数据
  2. var arr = [ [1, 2, 2], [3, 4, 5, 5], [6, 7, 8, 9, [11, 12, [12, 13, [14] ] ] ], 10];
  3. // ES6
  4. Array.from(new Set(arr.flat()).sort((a,b) => a - b));
  5. // ES5
  6. unique(flat(arr)).sort(function(a, b) {return a - b})