首页 > 试题广场 >

数组去重

[编程题]数组去重
  • 热度指数:77840 时间限制:C/C++ 2秒,其他语言4秒 空间限制:C/C++ 256M,其他语言512M
  • 算法知识视频讲解
为 Array 对象添加一个去除重复项的方法
示例1

输入

[false, true, undefined, null, NaN, 0, 1, {}, {}, 'a', 'a', NaN]

输出

[false, true, undefined, null, NaN, 0, 1, {}, {}, 'a']
头像 peg600
发表于 2020-09-26 22:12:29
数组去重简单一点可以用ES6新出的Set来去重,三行代码解决 Array.prototype.uniq = function () { return Array.from(new Set(this)) }Set数据结构类似于数组,但里面的成员都是唯一的。判断是否唯一的标准基本等同于‘===’ 展开全文
头像 夜寻极光。
发表于 2021-08-01 11:33:49
为 Array 对象添加一个去除重复项的方法 Array.prototype.uniq = function () { return [...new Set(this)]; }Set 对象允许你存储任何类型的唯一值,无论是原始值或者是对象引用。new Set(this) 直接利用Set把数组 展开全文
头像 摩罗星
发表于 2021-05-30 16:33:22
利用set进行判断去重 Array.prototype.uniq = function () { let arr = this; let res = [];//结果要返回的没有重复元素的数组 let set = new Set();//利用set记录数组中的元素,是否出现过 展开全文
头像 前端笨b一枚
发表于 2020-04-20 12:16:07
原始思维:Array.prototype.uniq = function() { var args = this; var len = args.length; var result = []; //定义一个执行一次的函数: function once(fn) { var target = 展开全文
头像 Palover
发表于 2021-08-05 16:38:58
用reduce也可 Array.prototype.uniq = function () { let result = this.reduce((pre,cur)=>{ if(pre.includes(cur)){ ret 展开全文
头像 编程且报错55
发表于 2021-06-20 20:02:17
function unique(arr) { //定义常量 res,值为一个Map对象实例 const res = new Map(); //返回arr数组过滤后的结果,结果为一个数组 //过滤条件是,如果res中没有某个键,就设置这个键的值为1 re 展开全文
头像 YH水景页
发表于 2021-07-02 07:41:08
此题可以使用arr.indexof(item)是否等于当前项的下标来筛选数据,因为indexof只会返回数组中第一次出现的元素的下标,我们可以通过判断返回的下标和当前元素的下标是否相同来判断。 值得一提的是因为数组中包含NaN,而任意NaN不等于NaN,所以indexof无法进行筛选。这里我们可以 展开全文
头像 猪头程序员Eddie
发表于 2023-10-23 16:20:56
Array.prototype.uniq = function () { // 1.使用集合快速去重 <!-- return Array.from(new Set(this)) --> // 2.使用数组的inclu 展开全文
头像 Q同学来了
发表于 2021-09-11 16:39:06
因为数组中包含NaN,而任意NaN不等于NaN,所以indexof无法进行筛选。这里我们可以拿到每一项时用Number.isNaN(item)先判断其是否为NaN,若为NaN,再判断NaN是否第一次出现.出现一次后改成false,洗一次再出现就不算入在内。主要:用args.indexOf(args[ 展开全文
头像 韩明阳
发表于 2021-08-13 11:51:07
第一种const array = [] this.forEach(e => { let target = true if (target && !array.includes(e)) { array.push(e) target = false 展开全文

问题信息

难度:
262条回答 21140浏览

热门推荐

通过挑战的用户

查看代码