测试用例
const array = [1, 1, 1, 1, '1', '1', null, null, undefined, undefined];
1.两层for循环
for (let i = 0; i < array.length; i++) {
for (let j = i + 1; j < array.length; j++) {
if (array[i] === array[j]) {
array.splice(j, 1);//注意splice是会改变原数组的
len--;
j--;//删除一个元素之后,指针也需要前移,以便不漏掉元素
}
}
}
2.使用set加拓展运算符(速度最快同样也是最简洁的方法)
const array1 = [...new Set(array)];
3.使用数组方法filter和indexof(核心思想是 indexof 只会返回相同元素的第一个位置,那么不是第一个位置的元素过滤掉就能完成去重)
const array2 = array.filter((item, index) => index === array.indexOf(item));
4.使用map(用对象也行)
const map = new Map();
for (let item of array) {
map.set(item, true);
}
const array3 = [...map.keys()];