let a1 = [ {id: 1,text: ''}, {id: 2,text: ''}, {id: 3,text: ''}, {id: 4,text: ''}, {id: 5,text: ''}, {id: 6,text: ''}, {id: 7,text: ''}, ] let a2 = [ {id: 1,text: ''}, {id: 2,text: ''}, {id: 3,text: ''} ] let a3 = [ {id: 3,text: ''}, {id: 4,text: ''}, {id: 5,text: ''}, ] let result = difObjectArray(a1, a2, a3) console.log(result) function difObjectArray (a1, a2, a3) { // 获取a1中不包含a2,a3的元素,a1,a2,a3所包含的字段可能不同,但都包含id // 取出各个数组的id let a1_key = a1.map((item) =>item.id) let a2_key = a2.map((item) =>item.id) let a3_key = a3.map((item) =>item.id) // 合并a2,a3 let concat = [].concat(a2_key,a3_key) // 去重 let noDuplicate = Array.from(new Set(concat)) // 获取差值 let diff = a1_key.filter(key => !noDuplicate.includes(key)) // 获取筛选后的数组 let resultArray = [] let length = a1.length for (let i = 0;i < length; i++) { let subLength = diff.length for (let j = 0; j < subLength; j++) { if (a1[i].id == diff[j]) { resultArray.push(a1[i]) } } } return resultArray }
2019年7月22日
0
1382