let arr = [{name:'cat',sex:'0'}, {name:'dog',sex:'0'}, {name:'bat',sex:'0'}]; let arr2 = [{name:'cat',sex:'1'}, {name:'dog',sex:'0'}]
一、循环判断arr与arr2是否有相同元素,相同的添加isdelete:false字段,不同添加isdelete:true
arr.map((item) => {
let bool = arr2.findIndex((it) => {
return item.name == it.name
})
if (bool !== -1) {
item.isdelete = false
} else {
item.isdelete = true
}
})
二、循环判断arr与arr2是否有相同元素,不同的使用arr2里的元素
const arryList=[];
arr.foreach((item)=>{
let includthis=false;
let list={};
arr2.forEach((ele)=>{
if(item.name===ele.name){
includthis=true;
list = item;
list.sex=ele.sex;
arryList.push(list);
}
});
if(includthis===flase){
arryList.push(item);
}
});
三、 arr与arr2合并去重
1. 先合并再去重
let json = arry.concat(ayy2); //两个数组对象合并
let newJson = []; //盛放去重后数据的新数组
for(item1 of json){
let flag = true; //建立标记,判断数据是否重复,true为不重复
for(item2 of newJson){
if(item1.id==item2.id){ //比较json数组对象的内容与新数组的内容作,相同的话,改变标记为false
flag = false;
}
}
if(flag){ //判断是否重复
newJson.push(item1); //不重复的放入新数组。
}
}
// const res = new Map();
// return arr.filter((arr) => !res.has(arr.name) && res.set(arr.name, 1))
2. 遍历添加不重复的
for (var obj in arry){//临时选择数据
var includeThis = false;
for(var dbj in arry2){ //右侧table里的数据
if(arry[obj].id==arry2[dbj].id){
includeThis=true;
}
}
if(includeThis==false){
json.push(arry[obj]);//把当前临时数据的这一条放到右侧table的数据里
}
}