将下面这两个数组进行合并
arr1:
let arr1 = [
{
"label": "教师信息管理",
"type": "action"
},
{
"label": "党员信息管理",
"type": "action"
},
{
"label": "学生信息管理",
"type": "action"
}
]
arr2:
let arr2 = [
{
"label": "教师信息管理",
"currentPage": "action",
"route":'/teachersInfo'
},
{
"label": "党员信息管理",
"currentPage": "action",
"route":'/partyMember'
},
{
"label": "学生信息管理",
"type":"nav",
"children":[
{
"label":"一年级",
"currentPage": "",
"route":'/first_grade',
},
{
"label":"二年级",
"currentPage": "",
"route":'/second_grade',
},
{
"label":"三年级",
"currentPage": "",
"route":'/three_grade',
},
]
}
]
两个数组中有相同字段也有不同的字段,使用Object.assign()
方法进行合并
Object.assign(target,source) 方法用于将所有可枚举属性的值从一个或多个源对象分配到目标对象。它将返回目标对象。
// 合并数组方法
function mergeArray(arr1, arr2) {
const newArray = [];
let length1 = arr1.length;
let length2 = arr2.length;
for (let i = 0; i < length1; i++) {
for (let j = 0; j < length2; j++) {
if (i === j) {
let mergeItem = Object.assign(arr1[i], arr2[j]);
newArray.push(mergeItem);
break;
}
}
}
return newArray;
}
let arr3 = mergeArray(arr1, arr2)
console.log(arr3)
打印结果
[
{
"label": "教师信息管理",
"type": "action",
"currentPage": "action",
"route": "/teachersInfo"
},
{
"label": "党员信息管理",
"type": "action",
"currentPage": "action",
"route": "/partyMember"
},
{
"label": "学生信息管理",
"type": "nav",
"children": [
{
"label": "一年级",
"currentPage": "",
"route": "/first_grade"
},
{
"label": "二年级",
"currentPage": "",
"route": "/second_grade"
},
{
"label": "三年级",
"currentPage": "",
"route": "/three_grade"
}
]
}
]