欢迎光临散文网 会员登陆 & 注册

JS-数组去重

2021-04-13 11:11 作者:hey_just_do_it  | 我要投稿

数组去重

一、双for循环方式


splice引起的数组塌陷问题

在删除重复项后,后面每一项的索引都会向前提一位,这样(如果删除的这一项后面还有1000万项,那么这1000万项的索引都要向前提一位),这样会大大的消耗性能。
解决:我们用最后一项替换删除项,再删除最后一项(下一轮循环还要从当前项开始),这样就不会导致索引前置,从而达到优化性能的目的。

二、对象键值对的方式

优点:

只有一个循环,所以性能很好

缺点:

1.如果数组中出现对象则会存在问题,因为对象的属性名不能是对象,遇到会转换为字符串; 2.如果数组中存在数字10和字符串'10',则也会认为是重复的,因为对象中的属性名是数字和字符串没有区别的; 3.数组中的值如果是undefined可能也会出现问题....

三、indexOf


缺点

indexOf低版本浏览器不兼容

四、ES6新特性:Set方式

Set数据结构会自动去重



缺点

低版本浏览器不兼容


JS-数组去重的评论 (共 条)

分享到微博请遵守国家法律