1、使用 Set 去重(ES6 中最常用)
利用Set的唯一性特性,将数组转换为Set,然后转回数组。
也可以使用Set和Array.from():先使用Set去除重复,再通过Array.from()将Set转回数组。
2、使用 indexOf()
indexOf查找一个字符串中,第一次出现指定字符串的位置。
indexOf方法返回一个整数值,指出 string对象内子字符串的开始位置。如果没有找到该字符串则返回-1。
3、使用includes()方法
遍历原数组,检查每个元素是否已存在于新数组中,若未存在则加入。
该方法会找到某一数组是否包含某元素 返回一个布尔值,它也可以用来查询字符串中是否包含某一个元素 返回的也是一个布尔值。
4、使用双重for循环
通过两层循环比较,使用splice删除重复的元素。
5、使用单重for循环
遍历原数组,检查每个元素是否已存在于新数组中,若未存在则加入。
6、使用filter()方法
通过filter()方法过滤出数组中唯一的元素。
7、使用reduce()方法
通过reduce()方法遍历数组,将不重复的元素累加到新数组中。
reduce()方法不仅仅用于数组求和,还可以满足增删查改、去重、平铺数组等需求,当reduce()方法解决每层数组的迭代拼接时,就会起到去重的作用。
8、使用Map对象
创建一个空 Map 数据结构,遍历需要去重的数组,把数组的每一个元素作为 key 存到 Map 中。由于 Map 中不会出现相同的 key 值,所以最终得到的就是去重后的结果。通过Map的has()和get()方法判断键是否重复。
原文出处:http://www.dongblog.com/notes/95.html
来源:博客网 转载请注明出处!