数组去重是笔试中经常见到的题目,方法也很多,下面是我可以想到的一些方法
方法一:新建一个新数组,如果新数组中没有要去重数组中的值就放到新数组中
function
unique1(arr)
{
    var
newArr=[]
    for
(var
i =
0;
i <
arr.length;
i++)
{
        if
(newArr.indexOf(arr[i])
== -1)
{
            newArr.push(arr[i])
        }
    }
    return
newArr
}
对于方法一的一种改进
function
unique1(arr)
{
    var
new1 =
[];
    arr.map(function
(v)
{
        if
(new1.indexOf(v)
=== -1)
{
            new1.push(v)
        }
    })
    return
new1
}
方法二:使用splice()方法,如果数组中一个值与数组中的其他值相等,那么就去掉后值。注意splice()可以修改原数组
function
unique2(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);
            } 
        }
    }
    return
arr;
}
方法三:filter本身不修改数组,会自动遍历数组,如果item对应的indexOf索引值与item本身index索引值相等,返回ture;否则返回false,去掉重复值,那么arr就剩下不重复的了
function
test(arr)
{
    return
arr.filter(function
(item,
index,
array)
{
        return
array.indexOf(item)
=== index;
    });
}
方法四:使用ES6的方法
function unique(arr){
return Array.from(new Set(arr));
}
 
                   
                   
                   
                   
                             本文总结了数组去重的四种实用方法,包括使用新数组存储唯一值、利用splice方法删除重复项、通过filter方法筛选非重复元素及采用ES6 Set实现高效去重。
本文总结了数组去重的四种实用方法,包括使用新数组存储唯一值、利用splice方法删除重复项、通过filter方法筛选非重复元素及采用ES6 Set实现高效去重。
           
       
           
                 
                 
                 
                 
                 
                
               
                 
                 
                 
                 
                
               
                 
                 扫一扫
扫一扫
                     
              
             
                   271
					271
					
 被折叠的  条评论
		 为什么被折叠?
被折叠的  条评论
		 为什么被折叠?
		 
		  到【灌水乐园】发言
到【灌水乐园】发言                                
		 
		 
    
   
    
   
             
            


 
            