js去重
1. 使用ES6的Set去重
// Set是ES6中新增的数据类型,它可以帮助我们快速去重。将数组转化为Set之后,再转化回数组即可。 ```javascript const arr = [1, 2, 3, 1, 2, 3]; const arrUnique = Array.from(new Set(arr)); ```
2. 使用Map数据结构去重
// Map是一种键值对映射的数据结构,可以将数组元素作为键,值可以是任何值。利用Map的特性,我们可以快速通过键的唯一性去重。 ```javascript const arr = [1, 2, 3, 1, 2, 3]; const map = new Map(); arr.forEach(item => { map.set(item, item); }); const arrUnique = Array.from(map.values());
3. 利用对象属性去重 由于对象中的属性都是唯一的,因此可以利用对象的这个特性进行数组去重。
const arr = [1, 2, 3, 1, 2, 3]; const obj = {}; arr.forEach(item => { obj[item] = true; }); const arrUnique = Object.keys(obj).map(item => parseInt(item));
4. 使用indexOf和数组拼接实现 基于indexOf方法的实现原理是在当前元素之前寻找是否存在相同的元素,如果存在则说明当前元素不是唯一的,需要过滤掉;否则添加到新的数组中。可以使用一个空数组和indexOf方法进行数组去重。
const arr = [1, 2, 3, 1, 2, 3]; const arrUnique = []; arr.forEach(item => { if (arrUnique.indexOf(item) === -1) { arrUnique.push(item); } });