判断步骤: 1、使用“new Set(数组)”语句将两个字段都转换为set集合类型; 2、使用new Set([...set1].filter(x => set2.has( x)))语句获取两个集合的交集,并返回一个包含所有交集元素的新集合; 3、使用“Array.from(intersection set)”语句将set转换为字段类型; 4、使用“Intersection Field ==[]”语句判断交集字段是否为空链表,如果是,则两个字段中不存在重复元素。
本教程的运行环境:windows7系统,javascript1.8.5版本javascript 数组重复,戴尔G3笔记本。
判断两个字段是否存在重复元素,换句话说,判断两个字段是否存在交集。
在javascript中,可以使用set对象的has()方法配合field的filter()进行判断。
实施步骤:
第 1 步:将两个字段转换为设置集合类型
let a=[1, 2, 3]; let b=[3, 5, 2]; newA = new Set(a); newB = new Set(b);
步骤 2:使用 has() 和 filter() 函数获取两个集合的交集
let a=[1, 2, 3]; let b=[3, 5, 2]; newA = new Set(a); newB = new Set(b); let intersectionSet = new Set([...newA].filter(x => newB.has(x))); console.log(intersectionSet);
可以看到javascript 数组重复,此时交集元素被包含在一个set集合中并返回。
第三步:使用Array.from方法将集合转换为形参类型
Array.from方法用于将两种类型的对象转换为真正的字段:类数组对象和可迭代对象(包括ES6的新数据结构Set和Map)。
let a=[1, 2, 3]; let b=[3, 5, 2]; newA = new Set(a); newB = new Set(b); let intersectionSet = new Set([...newA].filter(x => newB.has(x))); console.log(intersectionSet); let arr = Array.from(intersectionSet); console.log(arr);
第四步:判断交集字段是否为空链表
if(arr==[]){ console.log("两个数组没有重复元素"); }else{ console.log("两个数组有重复元素"); }