function twoArraySameData(array1, array2) {//正则表达式,验证数据连续重复
var reg = /,(.+)\1+/gim;//去掉数组1中重复的数据
array1=trimSameData(array1);//去掉数组2中重复的数据
array2=trimSameData(array2);//连接两数组中的元素
var item = array1.concat(array2);//进行排序,使用系统的元素排列在一起
item.sort();//存储两个数组相同元素的数组
var sameDataArray=[];//从第二个元素开始遍历数组,与前者比较
for(var i=1;i<item.length;i++){//判断与前面的元素是否相同,且是否已经保存到sameDataArray数组了
if(item[i]==item[i-1] && sameDataArray[sameDataArray.length-1]!=item[i]){sameDataArray.push(item[i]);//添加两个数组相同的元素
}}return sameDataArray;
}
//数组中相同元素去重
function trimSameData(array){//正则表达式,验证数据连续重复
var reg = /,(.+)\1+/gim;var arrayStr=","+array.sort().toString()+",";//考虑这样的字符串怎么去重 ,1,1,3,3,34,4,4,5,8,9,9,
// 你就知道这里为什么要使用while循环了
while(reg.test(arrayStr)){arrayStr=arrayStr.replace(reg,",$1");}arrayStr=arrayStr.slice(1,arrayStr.length-1);return arrayStr.split(",");
}var array1 = [1, 3, 4, 5,8,9,3,1,4,20];var array2 = [8,1,3,34, 4, 9, 3, 34];//测试twoArraySameData(array1,array2);//结果 ["1", "3", "4", "8", "9"]
本文来自互联网用户投稿,文章观点仅代表作者本人,不代表本站立场,不承担相关法律责任。如若转载,请注明出处。 如若内容造成侵权/违法违规/事实不符,请点击【内容举报】进行投诉反馈!