Js数组去重

7 篇文章 0 订阅
1 篇文章 0 订阅

1、for循环

//方法一
function reFun (arr){
	for(let i = 0; i < arr.length; i++){
		for(let j = i + 1; j < arr.length; j++){
			if(arr[i] === arr[j]){  //判断2个值是否相等
				arr.splice(j, 1); // 移除后面的重复元素
				j--; 
			}
		}
	}
	return arr;
};

var arr=[1, 1, 2, 3, 3, 3, 4, 4]
reFun(arr) 
//结果:  [1,2,3,4]

//方法二
function reFun (arr){
	var newArr = [];
	for(let i = 0; i < arr.length; i++){
		for(var j = 0; j < newArr.length; j++){ 
			if(arr[i] === newArr[j]) break; // 判断新数组当中有没有相同的值
		}
		if(j === newArr.length){ // 如果j和newArr长度相等,没有被中断
				newArr.push(arr[i]);
		}
	}
	return newArr;
}
var arr=[1, 1, 2, 3, 3, 3, 4, 4]
reFun(arr)    
//结果:  [1,2,3,4]

//方法三
function reFun(arr){
   arr.sort();//先排序让大概相同的在一个位置
   for(var i = 0; i < arr.length-1;i++){
         if(arr[i]==arr[i+1]){//还是两两比较 一样删除后面的
                arr.splice(i,1);
                i--;
         }
    }
	return arr;
}

var arr=[1, 1, 2, 3, 3, 3, 4, 4]
reFun(arr)    
//结果: [1,2,3,4]
  • 12
    点赞
  • 9
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值