手写数组去重

48 阅读1分钟
const uniq = function (a) {
  var map = {};
  for (let i = 0; i < a.length; i++) {
    let number = a[i];
    if (number === undefined) {
      continue;
    }
    if (number in map) {
      continue;
    }
    map[number] = true;
  }
  const result = [];
  for (let key in map) {
    result.push(parseInt(key));
  }
  return result;
};

缺点:只支持字符串

改良:

const uniq = function (a) {
  var map = new Map();
  for (let i = 0; i < a.length; i++) {
    let number = a[i];
    if (number === undefined) {
      continue;
    }
    if (map.has(number)) {
      continue;
    }
    map.set(number, true);
  }
  return [map.keys()];
};