js数组去重

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)
原文地址:https://www.cnblogs.com/chailuG/p/9571251.html