乐趣区

关于javascript:JavaScript数组去重方法

数组去重

在解决数据的时候,经常须要对数组进行去重操作。这里记下最罕用的三种办法。

1. ES6 中新增的 Set() 构造函数和 ... 开展语法

Set是 JavaScript 规范内置对象,它是 ES6(ES2015)里新增的对象。这个对象容许呢存储任何类型的惟一值,无论是原始值或者是对象援用。咱们能够利用它这个个性,用构造函数 Set() 来对数组进行去重操作。

const arr = ['A', 'B', 'C', 'A', 'B'];
const uniqueArr = [...new Set(arr)];
console.log(uniqueArr);

输入:
['A','B','C']

2. 应用数组的 indexOf()和 filter()办法

indexOf()办法会返回数组中能够找到一个给定元素的第一个索引,如果没有,则返回 -1。
对于数组中有反复元素的状况,能够联合这一个性,通过 filter 来遍历数组,依据以下代码来过滤掉反复元素。

const arr = ['A', 'B', 'C', 'A', 'B'];
const uniqueArr = arr.filter((item, index) => index === arr.indexOf(item));
console.log(uniqueArr);

输入:
['A','B','C']

indexOf()办法在这里是为 filter()办法提供判断条件。同理,咱们也能够用其余的形式来进行判断。

3. 应用数组的 forEach()和 includes()办法

这个办法是先初始化一个空数组,用 forEach()遍历原数组,而后将字段一个一个 push 进去。

const arr = ['A', 'B', 'C', 'A', 'B'];
arr.forEach(i => {if (!uniqueArr.includes(i)) {uniqueArr.push(i) }
});
console.log(uniqueArr);

输入:
['A','B','C']

这里用 includes() 来判断 uniqueArr 里是否曾经有这个字段,你也能够用 indexOf() 或者其余形式来判断。

退出移动版