当前位置: 主页 > js >

2个数组,相同数据合并后不同数据合并(删除指定

2021-06-24  |  来源:前端入门建站教程  |  作者:css3高手

下面前端入门建站教程为大家介绍一下2个数组,相同数据合并后不同数据合并(删除指定

1、删除指定索引

function Arrdel(a1, a2) {
  let arr = [];
  a2.forEach(item => {
	a1.splice(item, 1)
  })
  //过滤
  arr = a1.filter(item => item);
  return arr;
}

2、拿到相同数组和不同数组

let arr1 = [{examNo:1231,name:'中国',age:20},{examNo:3211,name:'美国',age:20}]
let arr2 = [{examNo:1231,sex:'男',fam:2},{examNo:'',sex:'女',fam:21}]
let appointmentListArr1 = [];
let appointmentListArr2 = [];
for (let i = 0; i < arr1.length; i++) {
	for (let j = 0; j < arr2.length; j++) {
	  if (arr1[i].examNo === arr2[j].examNo) {
		//获取相同数组
		appointmentListArr1.push(arr1[i]);
		appointmentListArr2.push(arr2[j]);
		//删除相同数组
		this.Arrdel(arr1, [i])
		this.Arrdel(arr2, [j])
	  }
	}
}

3、相同数组合并

const appointmentListArr = appointmentListArr1.map((item, index) => {
	return { ...item, ...appointmentListArr2[index] };
});

4、不同数组合并

const appointmentListArr3 =  arr1.map((item, index) => {
	return { ...item, ...arr2[index] };
});

5、总合并

const appointmentListArrList = appointmentListArr.concat(appointmentListArr3)

6、结果

console.log('结果',appointmentListArrList)
[
    {
        "examNo": 1231,
        "name": "中国",
        "age": 20,
        "sex": "男",
        "fam": 2
    },
    {
        "examNo": "",
        "name": "美国",
        "age": 20,
        "sex": "女",
        "fam": 21
    }
]

上面是“2个数组,相同数据合并后不同数据合并(删除指定”的全面内容,想了解更多关于 js 文章,请继续关注前端入门建站教程。

最新文章

猜你喜欢