1 // 方法一
2 var arr = [12,3,3,4,55,6,55,12,76]
3 var newarr =[];
4 for(var i=0;i<arr.length;i++){
5 if(newarr.indexOf(arr[i])==-1){
6 newarr.push(arr[i])
7 }
8 }
9 console.log(newarr)
// 方法二
var arr = [12,3,3,4,55,6,55,12,76]
for(var t=0;t<arr.length;t++){
for(var y=0;y<arr.length-1;y++){
if(arr[t]==arr[y]&&t!=y){
arr.splice(y,1)
}
}
}
console.log(arr)
1 // 方法三
2 var arr = [12,3,3,4,55,6,55,12,76]
3 var obj= {}
4 var new_arr =[]
5 for(var i=0;i<arr.length;i++){
6 var k=arr[i];
7 if(!obj[k]){
8 obj[k]=true;
9 new_arr.push(k)
10 }
11 }
12 console.log(new_arr)
//方法四 es6
var arr =[1,2,2,3,3,3,4,5,5,6]
console.log([...new Set(arr)])
console.log(Array.from(new Set(arr)))
1 方法五 利用indexOf()
2 使用indexOf(),可以判断一个数组中是否包含某个值,如果存在则返回该元素在数组中的位置,如果不存在则返回-1
3
4 functon unique(arr) {
5 let res = []
6 for (let i = 0; i < arr.length; i++) {
7 if (res.indexOf(arr[i]) === -1) {
8 res.push(arr[i])
9 }
10 }
11 return res
12 }
1 方法六 利用includes()
2
3 使用includes()方法也可以判断数组是否包含某个特定的元素,如果包含就返回true不包含就返回false。这和indexOf()方法有些类似,所以我们使用includes()进行数组去重和indexOf()的方法原理是一样的。
4
5 functon unique(arr) {
6 let res = []
7 for (let i = 0; i < arr.length; i++) {
8 if (!res.includes(arr[i])) {
9 res.push(arr[i])
10 }
11 }
12 return res
13 }
1 // 数组去重 filter
2
3 const arr1 = [22,1,44,32,32,22];
4 const newArr = arr1.filter( function (item,index,arr1){
5 console.log(arr1.indexOf(item) === index)
6 return arr1.indexOf(item) === index
7 })
8 console.log(newArr)
// 方法7 利用reduce()
var names = ['Alice', 'Bob', 'Tiff', 'Bruce', 'Alice'];
var arring = names.reduce(function (arrcoult,currentval){
if(arrcoult.indexOf(currentval) === -1) {
arrcoult.push(currentval)
}
return arrcoult
},[])
console.log(arring)