两数据筛选过滤,数组去重

方法一:ES6

let a=[1,2,3,5,4],b=[4,7,2,3,0];
// “...”是ES6中的扩展运算符,c表示将数组a和b合并,带有重复数据
c = [...a,...b];
// set是ES6提供的一中数据结构,这里主要用到是它不包含重复元素的特点,这样转化成了一个没有重复元素的数据结构,[1,2,3,5,4,7,0]
d = new Set(c);
// 把d的这种类数组数据结构转化为数组,数组中包含的仍是两个数组的并集
e = Array.from(d);
// 筛选除了e中不包含a的元素,再加上e中不包含b的元素,重新组成一个数组
f = [...e.filter(_ => !a.includes(_)),...e.filter(_ => !b.includes(_))];
console.log(f);
// 运行结果:[7,0,1,5]

方法二:支持IE8

function diff(arr1,arr2){
	var a = [];
	var b = [];
	// 将数组值作为新数组下标
	for(var i=0;i<arr2.length;i++){
	    a[arr2[i]]=true;
	}
	
	for(var i=0;i<arr1.length;i++){
	    if(!a[arr1[i]]){
	        b.push(arr1[i]);
	    }
	}
	console.log(b)
}
let aa = ["a","b"],bb=["a"];
diff(aa,bb);	//"b"

参考博客地址

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值