hi, 小伙伴们,好久不见噢~
今天分享一个小功能,工作中遇到Check表格中重复字段名的需求,不想用循环的方式,就想了其他实现思路,觉得挺有意思,就分享出来共同探讨一下。
isCheck(arr1:any[], arr2:any[]) {
// 拼接两个数组
let newArr = arr1.concat(arr2);
// 数据去重
let noRepetitionArr = [...new Set(newArr)];
// 如果 去重数组长度小于原数组长度,则表示有重复
if (noRepetitionArr.length < newArr.length) {
// 获取数组中重复的值
let defArr = newArr.filter(function(v, i, arr) {
return arr.indexOf(v) !== arr.lastIndexOf(v);
});
// 重复的值再次去重 也可省掉此步骤
let newdefarr = [...new Set(defArr)];
return newdefarr;
}
return [];
}
let arr1 = [1,2,3,4,5,6,6,6];
let arr2 = [6,7,8,9,10,11,11];
let test = this.isCheck(arr1, arr2);
test 结果为 [6,11]
以下为浏览器控制台运行结果: