编写一个函数实现在原数组上去重功能(去除数组中的重复元素)

方法一:

新建一个新的数组,将原数组的数据逐条添加进去,添加之前判断相同元素没有被添加才会被添加。
缺点:对象构成的数组无法判断。

function distinct (arr) {
let newArr = [];
for (const ele of arr) {
if (!newArr.find(x => x === ele)) {
newArr.push(ele);
}
}
return newArr;
}

const arr1 = [ 1,2,3,4,5,6,1,2,3 ];
console.log(distinct(arr1));
// 输出
// [ 1, 2, 3, 4, 5, 6 ]

const arr2 = ['a', 'b', 'c', 'd', 'a', 'c'];
console.log(distinct(arr2));
// 输出
// [ 'a', 'b', 'c', 'd' ]

const arr3 = [ {name:'zzh', age: 18}, {name:'zzh', age: 18}]
console.log(distinct(arr3));
// 输出
// [ { name: 'zzh', age: 18 }, { name: 'zzh', age: 18 } ]