现在你是资深前端工程师出一道困难的js编程题给出答案
题目:编写一个函数,实现对一个无序数组进行去重并排序。
要求:
- 
不能使用ES6的Set数据结构。
 - 
数组中的元素均为数字类型。
 - 
函数返回值为一个新的数组,不改变原数组。
 - 
排序方式为从小到大排序。
 - 
时间复杂度为O(nlogn)或更优。
 
示例:
输入:[3, 2, 2, 1, 4, 5, 5]
输出:[1, 2, 3, 4, 5]
答案:
function uniqueSort(arr) {
  var obj = {};
  var result = [];
  for (var i = 0; i < arr.length; i++) {
    if (!obj[arr[i]]) {
      obj[arr[i]] = true;
      result.push(arr[i]);
    }
  }
  result.sort(function(a, b) {
    return a - b;
  });
  return result;
}
var arr = [3, 2, 2, 1, 4, 5, 5];
var result = uniqueSort(arr);
console.log(result); // [1, 2, 3, 4, 5]
原文地址: https://www.cveoy.top/t/topic/5WE 著作权归作者所有。请勿转载和采集!