1、使用for循环嵌套,splice去重(ES5中最常用)
2、使用indexOf()去重
indexOf() 方法可返回某个指定的字符串值在字符串中首次出现的位置。
如果没有找到匹配的字符串则返回 -1。
注意: indexOf() 方法区分大小写。
新建一个空的结果数组,循环原数组,判断结果数组是否存在当前元素,如果有相同的值则跳过,不相同则进数组。
3、使用数组中的filter()方法
4、使用空对象来记录新数组中已经存储过的元素
利用对象的属性不能相同的特点点进行去重。(这种数组去重的方法有问题,不建议用,有待改进)
5、使用Set()去重(ES6中最常用)
Set:不包含重复元素的值的集合。
Map:双列集合,键值对。
这种方法无法去掉“{}”空对象。
6、利用sort()去重
sort() 方法用于对数组的元素进行排序。
排序顺序可以是字母或数字,并按升序或降序。
默认排序顺序为按字母升序。
注意:当数字是按字母顺序排列时"40"将排在"5"前面。
使用数字排序,你必须通过一个函数作为参数来调用。
函数指定数字是按照升序还是降序排列。
注意: 这种方法会改变原始数组!
利用排序方法,然后根据排序后的结果进行遍历及相邻元素比对。
7、使用includes去重(ES7)
includes() 方法用于判断字符串是否包含指定的子字符串。
如果找到匹配的字符串则返回 true,否则返回 false。
注意: includes() 方法区分大小写。
8、利用hasOwnProperty去重
9、利用递归去重
10、利用Map数据结构去重
创建一个空数据结构,遍历需要去重的数组,把数组的每一个元素作为存到中,由于Map中不会出现相同的值,所以最终得到的就是去重后的结果。
11、利用 reduce 去重(适合累加、累乘)
12、[…new Set(arr)]去重
第五种简化版。
版权声明:
本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。
如若内容造成侵权、违法违规、事实不符,请将相关资料发送至xkadmin@xkablog.com进行投诉反馈,一经查实,立即处理!
转载请注明出处,原文链接:https://www.xkablog.com/bcyy/18960.html