js数组里面的对象怎样去重(快速给出五种数组去重的方法)
js数组里面的对象怎样去重(快速给出五种数组去重的方法)注意,NaN没有去重掉,因为NaN!=NaN。同时空对象也没有去重。不要担心,总会有去掉的那一刻。输出:[1 "true" undefined NaN NaN "NaN" 0 "a" {} {}]测试数组可以是纯数字类型的情况,也可以是复杂数据类型的情况。测试数组如下。let arr = [1 1 'true' 'true' true true undefined undefined null null NaN NaN 'NaN' 0 0 'a' 'a' {} {}] 方法一,利用Set方法来处理输出:[1 'true' true undefined null NaN 'NaN' 0 'a' {} {}]注意一下,这个方法并没有将空对象给去重掉。不要担心,总会有去掉的那一刻。
点击右上方红色按钮关注“小郑搞码事”,每天都能学到知识,搞懂一个问题!
在JavaScript中,数组去重的问题,在什么时候会碰到,第一,写代码的时候。第二,面试的时候。记得有一次和同事一起吃饭的时候,也讨论过这个问题,当时就是轮流说一思路,一来我去的,竟然发现,原来现在数组去重有这么多种方法。
那么,今天,就来列一下数组去重的多种方法。由于时间关系,先列五种,另外四到五种下篇来续。
准备测试数组
测试数组可以是纯数字类型的情况,也可以是复杂数据类型的情况。测试数组如下。
let arr = [1 1 'true' 'true' true true undefined undefined null null NaN NaN 'NaN' 0 0 'a' 'a' {} {}] 方法一,利用Set方法来处理
输出:[1 'true' true undefined null NaN 'NaN' 0 'a' {} {}]
注意一下,这个方法并没有将空对象给去重掉。不要担心,总会有去掉的那一刻。
方法二,循环中使用splice去重输出:[1 "true" undefined NaN NaN "NaN" 0 "a" {} {}]
注意,NaN没有去重掉,因为NaN!=NaN。同时空对象也没有去重。不要担心,总会有去掉的那一刻。
方法三,老朋友indexOf登场输出:[1 "true" undefined NaN NaN "NaN" 0 "a" {} {}]
同样NaN和空对象没有去重掉。不要担心,总会有去掉的那一刻。
方法四,利用sort提前处理输出:[0 1 NaN NaN "NaN" {} {} "a" "true" undefined]
先用sort将数据进行排序,然后将排序后的结果进行遍历相邻元素比对,同样NaN和空对象没有去重掉。不要担心,总会有去掉的那一刻。
方法五,对象属性不能相同特性输出:[0 1 NaN {} "a" "true" undefined]
这种处理方式,将所有类型数据都去重了。不用在担心有去不了重的数据类型了。
最后总结一下:
数组去重,并不只这些方法,还有一些其他的思路。下篇继续给大家分析。