一、new Set()方法
Set对象允许你存储任何类型的唯一值,无论是原始值或者是对象引用。
function removeRepeatElement(arr) {
return Array.from(new Set(arr));
}
注意:要用Array.from()来将Set对象转换成一个真的数组。
二、ES6三点运算符 + new Set()
function removeRepeatElement(arr) {
return [...new Set(arr)];
}
三、indexOf()方法
遍历源数组,判断新数组中有没有源数组的数组项,没有就加到新数组中去。
function removeRepeatElement(arr) {
let newArr = [];
for (let i = 0; i < arr.length; i++) {
if (newArr.indexOf(arr[i]) === -1) {
newArr.push(arr[i]);
}
}
return newArr;
}
四、相邻元素对比(sort() + Object.is())
先排序,排完之后相邻元素对比。
function removeRepeatElement3(arr) {
let newArr = [];
arr.sort();
for (let i = 0; i < arr.length; i++) {
if(!Object.is(arr[i], arr[i+1])) {
newArr.push(arr[i]);
}
}
return newArr;
}