今天面试碰上这道题,分享三个方法:
1.Set去重
<script type="text/javascript">
arr=[1,5,22,1,2,2,4,7,9,55,11,22,44]
let res = new Set(arr)
console.log(res)
</script>
效果:
2.for循环嵌套,利用splice去重:
<script type="text/javascript">
function newArr(arr){
for(var i=1;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;
}
var arr=[1,11,1,2,33,3,2,3,4,5,6,7,8,9,11,2,11,44];
console.log(newArr(arr));
</script>
效果:
3.indexOf去重:
<script type="text/javascript">
function newArr(array){
var arrs = [];
//遍历当前数组
for(var i=0;i<arr.length;i++){
//如果临时数组里没有当前数组的当前值,则把当前值push到新数组里面
if(arrs.indexOf(array[i]) == -1){
arrs.push(array[i])
};
}
return arrs;
}
var arr = [11,1,1,2,3,2,3,5,4,5,6,5,8];
console.log(newArr(arr));
</script>
效果: