http://www.sufeinet.com/plugin.php?id=keke_group

苏飞论坛

 找回密码
 马上注册

QQ登录

只需一步,快速开始

分布式系统框架(V2.0) 轻松承载百亿数据,千万流量!讨论专区 - 源码下载 - 官方教程

HttpHelper爬虫框架(V2.7-含.netcore) HttpHelper官方出品,爬虫框架讨论区 - 源码下载 - 在线测试和代码生成

HttpHelper爬虫类(V2.0) 开源的爬虫类,支持多种模式和属性 源码 - 代码生成器 - 讨论区 - 教程- 例子

查看: 1977|回复: 0

[JavaScript] js-实现数组去重的几种方式

[复制链接]
发表于 2021-6-21 14:49:52 | 显示全部楼层 |阅读模式
  做项目中难免会遇到数组如何去重的问题,下面我们就来说说几种js去重的方法。

1.indexOf方法:新建一个数组,再遍历去重的数组,如果当前元素不在新数组的话,就加入到新数组当中
[JavaScript] 纯文本查看 复制代码
    function getArr(arr){
    	var newArr = [];
	    for(var i = 0; i < arr.length; i++){
	        if(newArr.indexOf(arr[i]) == -1){
	            newArr.push(arr[i])
	        }
	    }
	    return newArr;
	}       
	
	var arr = [1,2,2,3,4,4,5,1,3];
	console.log(getArr(arr));
2.遍历数组法:双层循环
[JavaScript] 纯文本查看 复制代码
	function getArr(arr){
	    var newArr = [];
	    for(var i = 0; i < arr.length; i++){
	        for(var j = i+1; j < arr.length; j++){
	            if(arr[i] == arr[j]){
	                ++i;
	            }
	        }
	        newArr.push(arr[i]);
	    }
	    return newArr;
	}
	var arr = [1,2,2,3,5,3,6,5,2,3,4];
	console.log(getArr(arr));

3.利用对象的属性不能相同的特点去重:新建一个数组和一个空对象,for循环时,每次取出一个元素与对象进行对比,如果这个元素不重复,则把它存放到结果数组中,同时把这个元素的内容作为对象的一个属性,并赋值为1,存入到建立的对象中。
[JavaScript] 纯文本查看 复制代码
function getArr(arr){
	    var res = [];
	    var obj = {};
	    for(var i=0; i<arr.length; i++){
	       if( !obj[arr[i]] ){
	            obj[arr[i]] = 1;
	            res.push(arr[i]);
	        }
	    } 
	 return res;
	}
	
	var arr = [1,2,2,3,5,3,6,5,2,3,4,7];
	console.log(getArr(arr));


4.ES6数组去重:set方法
[JavaScript] 纯文本查看 复制代码
function getArr(arr){
	 //Set数据结构,它类似于数组,其成员的值都是唯一的
	 return Array.from(new Set(arr)); // 利用Array.from将Set结构转换成数组
	}
	
	var arr = [1,2,2,3,5,3,6,5,2,3,4,7];
	console.log(getArr(arr));




以上就是总结的js去重的几种方法,希望可以帮助到大家!




1. 开通SVIP会员,免费下载本站所有源码,不限次数据,不限时间
2. 加官方QQ群,加官方微信群获取更多资源和帮助
3. 找站长苏飞做网站、商城、CRM、小程序、App、爬虫相关、项目外包等点这里
您需要登录后才可以回帖 登录 | 马上注册

本版积分规则

QQ|手机版|小黑屋|手机版|联系我们|关于我们|广告合作|苏飞论坛 ( 豫ICP备18043678号-2)

GMT+8, 2024-4-24 22:40

© 2014-2021

快速回复 返回顶部 返回列表