数组去重是js学习者学习数组时通常会遇到的一个问题,也是面试会碰到的一个问题。
在下文我分享几个数组去重的方案。
这是一个待去重的数组 [10,10,20,50,50,30,30,30,20]
方案1:
step1:利用sort(),先将数组升序或者降序排列。
step2:因为数组是排好序的,只要将当前数据和相邻的下一个数据做比较,判断是否相等,即 是否重复。如果有就把当前数据删除,再拿相邻的数据去比较是否还有与之相同的数据,依次进行,直至没有一个数据与当前数据相等。
step3:遍历数组,将数组中的每一个数据都去执行step2。
code如下
方案2
思路:利用一个新的空数组去重。
step1:准备一个空数组;
step2:遍历原始数组,去判断新数组中是否存在当前数据,如果没有,就把数据添加到新的数组里,如果有,就什么都不做,判断下一个,直至遍历结束。
step3:把新数组输出。
方案3
思路:利用对象键名不重名的特点。
step1:准备一个空对象obj。
step2:循环遍历数组,把数组中的每一个数据当作是对象的key,给他随便赋一个值,添加到对象里。直到遍历结束。这时对象内的每一个key就是去重以后的数据。
step3:遍历对象,把每一个key拿出来,放到数组里。
本篇文章先分享这3个数组去重的方法,剩下的方法将在下边文章输出,如有误,请指正。