题解 | 数组去重

数组去重

https://www.nowcoder.com/practice/7a26729a75ca4e5db49ea059b01305c9

const _deleteRepeat = array=>{
	return Array.from(new Set(array));
}

ES6箭头函数

  • 语法:
  • const functionName = parameter => { 函数体 }
  • 特性:
  • 简化函数声明,代替传统 function 关键字
  • 自动绑定词法作用域的 this
  • 适合简短的函数定义,提高代码可读性

Set数据结构(ES6)

  • 定义:
  • new Set([iterable]),创建一个值唯一的集合
  • 核心特性
  • 所有值都是唯一的,自动去重
  • 支持各种数据类型(基本类型+引用类型)
  • 按引用地址对引用类型去重
  • 常用方法:add() , delete() , has() , clear()
  • 应用场景:数组去重、数据唯一性验证、集合运算

Array.from()方法(ES6新增)

  • 语法:
  • Array.from(arrayLike [ , mapFn[ , thisArg ] ])
  • 功能:将类数组对象或可迭代对象转换为真正的数组
  • 适用对象:
  • Set,Map等可迭代对象
  • DOM NodeList集合
  • 字符串
  • 带有length属性的对象
  • 应用场景:集合转数组类数组转数组字符串转数组

数组去重实现

  • 核心原理:利用Set数据结构的唯一性特性
  • 实现方式:
  • Array.from(new Set(array))
  • [...new Set(array)]
  • 性能优势:时间复杂度为O(n),比传统双重循环效率更高
  • 局限性:引用类型按地址去重而不是值比较

const 关键字

  • 作用:声明只读常量,值不可重新赋值
  • 特性
  • 块级作用域
  • 必须初始化
  • 常量引用不可变,但引用的对象/数组内容可变
  • 应用场景:声明函数,配置项,固定常量

代码优化与拓展

const _deleteRepeat = array =>{
	if(!Array.isArray(array)){
		throw new Error('参数必须是数组');
	}
	return Array.from(new Set(array));
}

const deepDeleteRepeat = array => {
	const seen = new Map();
  return array.filter(item => {
  	const key = typeof iter === 'object' ? JSON.stringify(item) : item;
	return !seen.has(key) && seen.set(key,true);
  });
}

全部评论

相关推荐

不愿透露姓名的神秘牛友
05-13 16:09
我入职那天分到的mentor是个工作三年的哥们儿,外号杰哥,浙大本硕,技术贼好,人也特别耐心。第一周他手把手带我熟悉项目,下班还带我去公司食堂吃晚饭,跟我讲组里的人际关系、哪个产品好沟通、哪个测试爱挑刺。我当时心里那个踏实啊,心想这mentor是真带我,运气真好。我甚至已经开始幻想转正后跟着他干。周一下午四点多,我正在改一个特别恶心的bug,他飞书突然发我:"小x,跟你说个事儿,我下周一是最后一天,我跳槽了,你之后跟着王哥学。"我当时直接回复了“????”真的以为他在开玩笑。他发了一个尴尬笑的表情,"真的,offer上个月就拿了,一直没说"。我那一瞬间真的不知道说啥。下班的时候我特意去他工位转了一圈,他已经在收拾东西来,看见我笑了一下,说"我请你吃个饭吧"。我们去了公司楼下的麻辣烫。吃饭的时候他跟我说了很多,说大厂这边晋升路径太卷,说他家在外地啊老婆怀孕了啊想离家近点什么的,说新公司虽然小但是给的钱多。我一边吃一边点头,看到一个快到中年研发人的无奈,感觉也看到了未来的我,心里挺不是滋味的。今早上午他飞书里发我一个文档链接,是他这两年攒的项目笔记,模块分工、踩过的坑、谁负责啥都有。他说"这个你留着,遇到问题先看这个再找王哥吧"。说实话,我当时贼感动,工作的这两周,他可能是我在公司里唯一真正把我当回事儿的人了。最后,我想说兄弟们,找实习真的别只看大厂光环,mentor稳定性也是玄学之一。我现在心里有点空,感觉靠山没了
鹿LF:你mt不是才工作三年吗,怎么就中年研发人了
点赞 评论 收藏
分享
评论
点赞
收藏
分享

创作者周榜

更多
牛客网
牛客网在线编程
牛客网题解
牛客企业服务