在前端开发中,常常要遇到去除数组中重复数据的问题,即所谓的数组去重。社区中有不少解决的办法,好比双层for
循环、indexOf + filter
、Set
等,有的还会考虑{}
,[]
、NaN
是否重复,以及几千万条数据去重而致使的性能问题,但以实际业务开发场景来看,咱们遇到的大多数状况是如何去除同一类型、数据量不大的重复数据,因此本文从业务场景角度出发,只列举出几种经常使用、简单的数组去重办法,若是你有更好的思路,欢迎留言区拍板。前端
顾名思义,数组里面的项再也不是基本类型,在实际业务开发场景中,咱们须要根据对象指定的属性去除重复的项。数组
Map
的键不可重复下图是QQ
音乐的搜索历史列表,每当用户输入一个新的关键词,便会把它添加到历史列表的首位,若是出现了重复,须要删除掉旧的那一项。实际上这里也是数组对象去重的问题,解决思路很简单,直接过滤掉旧的重复项,把新的一项添加到首位便可。 性能