一、双重遍历去重
function onlyFigure(arr) {
let newarr = [];
const length = arr.length
for (let i = 0; i < length; i++) {
for(let j = i + 1; j < length; j++) {
if(arr[i] === arr[j]) {
i++;
j=i;
}
}
newarr.push(arr[i])
}
console.log(newarr);
}
onlyFigure([0,0,1,2,4,2,1,6,5]);
二、原数组下标indexOf去重
function onlyFigure(arr) {
let newarr = [];
for (let i = 0; i < arr.length; i++) {
if(arr.indexOf(arr[i]) == i) {
//console.log(arr.indexOf(arr[i]));
newarr.push(arr[i]);
}
}
console.log(newarr);
}
onlyFigure([0,0,1,2,4,2,1,6,5]);
三、新数组indexOf去重
function only(arr) {
let newarr = [];
let len = arr.length;
for(let i = 0 ; i < len ; i ++ ) {
if(newarr.indexOf(arr[i]) === -1) {
newarr.push(arr[i])
}
}
return newarr
}
四、es6 Set去重
function onlyNum(arr) {
return Array.from(new Set(arr))
}
五、for...of + Object
利用对象的属性不会重复这一特性,校验数组元素是否重复
function distinct(arr) {
let result = []
let obj = {}
for (let i of arr) {
if (!obj[i]) {
result.push(i)
obj[i] = 1
}
}
return result
}
参考(引用)链接:https://www.cnblogs.com/wisewrong/archive/2018/09/20/9642264.html