JS中数组去重有多种方法,以下是五种常见的去重方法:
利用双重for循环和includes方法:
- 这种方法通过两层循环遍历数组,内部循环使用includes方法检查当前元素是否已经在结果数组中存在。如果不存在,则添加到结果数组中。
利用ES6的Set数据结构:
- Set是ES6新增的数据结构,它类似于数组,但是成员的值都是唯一的,没有重复的值。因此,可以将数组转换为Set,再转换回数组,从而实现去重。
利用数组的lastIndexOf方法:
- 在遍历数组的过程中,使用lastIndexOf方法检查当前元素在之前是否已经出现过。如果没有出现过(即lastIndexOf返回的索引是当前元素的索引),则将该元素添加到结果数组中。
针对数组中含对象的去重,使用JSON.stringify方法:
- 由于对象直接比较会引用同一个内存地址,因此需要将对象转换为JSON字符串进行比较。遍历数组,将每个对象转换为JSON字符串,并使用一个Set或对象来存储已经出现的字符串,从而实现去重。
利用数组排序后相邻元素比较:
- 首先对数组进行排序,然后遍历排序后的数组,比较当前元素与前一个元素是否相同。如果不同,则添加到结果数组中。这种方法可以严格匹配以区分数据类型。
以上是五种常见的JS数组去重方法,每种方法都有其适用的场景和优缺点。在实际应用中,可以根据具体需求和数组的特点选择合适的方法。