1、使用双层for循环去重
var arr = [1,2,3,4,5,4,1,3,2,1];
function unique(arr){
// 循环前一项
for(var i=0;i<arr.length;i++){
//循环后一项
for(var j=i+1;j<arr.length;j++){
if(arr[i]===arr[j]){
// 删除后一项重复的数组元素
arr.splice(j,1);
// 修正下标
j--;
}
}
}
return arr
}
console.log(unique(arr));
2、使用indexOf去重
var arr = [1,2,3,4,5,4,1,3,2,1];
function unique(arr){
var newArr = [];
for(var i=0;i<arr.length;i++){
// 判断每一项数组元素是否存在新数组中 不存在则添加到新数组中
// newArr.indexOf(arr[i])===-1?newArr.push(arr[i]):""
// newArr.indexOf(arr[i])===-1?newArr[newArr.length]=arr[i]:""
if(newArr.indexOf(arr[i])===-1){
newArr.push(arr[i])
}
}
return newArr
}
console.log(unique(arr));
3、使用lastIndexOf去重
vvar arr = [1,2,3,4,5,4,1,3,2,1];
function unique(arr){
var newArr = [];
for(var i=0;i<arr.length;i++){
// 判断每一项数组元素是否存在新数组中 不存在则添加到新数组中
// newArr.lastIndexOf(arr[i])===-1?newArr.push(arr[i]):""
// newArr.lastIndexOf(arr[i])===-1?newArr[newArr.length]=arr[i]:""
if(newArr.lastIndexOf(arr[i])===-1){
newArr.push(arr[i])
}
}
return newArr
}
console.log(unique(arr));
4、使用includes方法去重
var arr = [1,2,3,4,5,4,1,3,2,1];
function unique(arr){
var newArr = [];
for(var i=0;i<arr.length;i++){
// newArr.includes(arr[i])===false?newArr[newArr.length]=arr[i]:""
if(!newArr.includes(arr[i])){
newArr.push(arr[i])
}
}
return newArr
}
console.log(unique(arr))
5、使用forEach方法 + includes / indexOf / lastIndexOf
var arr = [1,2,3,4,5,4,1,3,2,1];
function unique(arr){
var newArr = [];
arr.forEach(function(item){
// newArr.indexOf(item)===-1?newArr.push(item):""
// newArr.lastIndexOf(item)===-1?newArr.push(item):""
newArr.includes(item)===false?newArr.push(item):""
})
return newArr
}
console.log(unique(arr));
6、使用filter方法 + includes / indexOf / lastIndexOf
var arr = [1,2,3,4,5,4,1,3,2,1];
function unique(arr){
var newArr = [];
return arr.filter(function(item){
// return newArr.includes(item)===false?newArr.push(item):""
// return newArr.indexOf(item)===-1?newArr.push(item):""
return newArr.lastIndexOf(item)===-1?newArr.push(item):""
})
}
console.log(unique(arr));
7、使用set去重 set成员是唯一的
var arr = [1,2,3,4,5,4,1,3,2,1];
var set = new Set(arr);
console.log(Array.from(set));