以下方法是将两个数组合并为一个新的数组,并去除所有重复的元素。示例:
let arr1 = [1,2,3,3,4] let arr2 = [2,2,3,4]
调用以下方法合并之后的数组为:arr = [1,2,3,4]
//定义一个函数,传入两个数组,返回一个去重数组
function twoArraysToOne (arr1,arr2) {
let arr3= [];
let arr4= [];
for (let k = 0; k < arr1.length; k++) {
let count1 = 0;
for (let l = 0; l < arr1.length; l++) {
if (arr1[k] === arr1[l]) {
count1++;
}
}
if (count1 % 2 === 1){
//如果是奇数,说明是选中项,添加到数组中保存
arr3.push(arr1[k]);
}
}
for (let k = 0; k < arr2.length; k++) {
let count2 = 0;
for (let l = 0; l < arr2.length; l++) {
if (arr2[k] === arr2[l]) {
count2++;
}
}
if (count2 % 2 === 1){
//如果是奇数,说明是选中项,添加到数组中保存
arr4.push(arr2[k]);
}
}
//分别去重
arr3= uniq(arr3);
arr4= uniq(arr4);
return mergeArrayMerge(arr3,arr4);
}
//数组相加并去重方法
function mergeArrayMerge (array1, array2) {
array1.map((v, index) => {
if (v !== '') {
let idx = array2.indexOf(v);
if (idx > -1) {
array2.splice(idx, 1)
}
}
});
array1 = array1.concat(array2);
return array1
}
//单个数组去重
function uniq(array){
let temp = []; //一个新的临时数组
for(let i = 0; i < array.length; i++){
if(temp.indexOf(array[i]) === -1){
temp.push(array[i]);
}
}
return temp;
}
以上twoArraysToOne ()方法直接调用传入两个数组即可,返回新数组。