从业务场景角度谈数组去重

导读

在前端开发中,常常要遇到去除数组中重复数据的问题,即所谓的数组去重。社区中有不少解决的办法,好比双层for循环、indexOf + filterSet等,有的还会考虑{},[]NaN是否重复,以及几千万条数据去重而致使的性能问题,但以实际业务开发场景来看,咱们遇到的大多数状况是如何去除同一类型、数据量不大的重复数据,因此本文从业务场景角度出发,只列举出几种经常使用、简单的数组去重办法,若是你有更好的思路,欢迎留言区拍板。前端

数组去重(同一基本类型)

1. 使用Set和Array.from

set

2. 使用Array.filter和Array.indexOf

3. 使用Array.reduce和Array.includes

数组对象去重

顾名思义,数组里面的项再也不是基本类型,在实际业务开发场景中,咱们须要根据对象指定的属性去除重复的项。数组

1. 利用对象的键不可重复

2. 利用Map的键不可重复

数组添加不可重复的项

下图是QQ音乐的搜索历史列表,每当用户输入一个新的关键词,便会把它添加到历史列表的首位,若是出现了重复,须要删除掉旧的那一项。实际上这里也是数组对象去重的问题,解决思路很简单,直接过滤掉旧的重复项,把新的一项添加到首位便可。 性能

相关文章
相关标签/搜索