Skip to content

每日一题:实现数组去重

作者:江月迟迟
发表于:2024-12-10
字数统计:364 字
预计阅读2分钟

挑战介绍

本节我们来挑战一道大厂面试真题 —— 实现数组去重。

挑战准备

新建一个 myUniq.js 文件,在文件里写一个名为 myUniq 的函数,并导出这个函数,如下图所示:

图片描述

这个文件在环境初始化时会自动生成,如果发现没有自动生成就按照上述图片自己创建文件和函数,函数代码如下:

js
function myUniq(arr) {
  // 补充代码
}

module.exports = myUniq;

挑战内容

请封装一个函数,用来去掉数组中重复的元素。

该函数返回的是一个新的数组。

不必考虑数组中出现对象、nullundefinedNaN 等特殊情况,数组中的每一项都是数字。

示例:

js
输入:[1,1,1,2,2,3,3,4,5,1]
输出:[1,2,3,4,5]
输入:[1,1,1]
输出:[1]

注意事项

  • 文件名、函数名不可随意更改。
  • 文件中编写的函数需要导出,否则将无法提交通过。

题解

对于一个需要统计某元素在集合中出现次数的,可以考虑hashMap,hashMap可以用js提供的new关键字创建Map对象,也可以自己手写,这里我自己手写

js
function myUniq(arr) {
  // hashmap秒了
  const hashMap = {}
  const result = []
  for(let num of arr) {
    if (!hashMap[num]) {
        result.push(num)
        hashMap[num] = 1
    }
  }
  return result
}