// 模拟数据
let Iclass = [{name: 'DFG', apply_phone: '131****8569'},{name: '李三', apply_phone: '150****8859'},{name: '网三', apply_phone: '176****8666'},{name: '李四', apply_phone: '131****1119'},{name: '王五', apply_phone: '135****0012'},{name: '马六', apply_phone: '187****0123'},{name: '猴七', apply_phone: '132****7877'},];
let list = [{name: 'DFG', apply_phone: '131****8569'},{name: '李三', apply_phone: '150****8859'}];
说下思路:现在我们有两个数组对象格式数据,需要将两个数组合并并去重,for循环遍历一个数组,定义一个方法并调用;方法已写在下面
当Iclass循环遍历时,调用RemoveSameEvent方法,并且传入参考的数组list及Iclass数组遍历的对象Iclass[i]
RemoveSameEvent方法,判断Iclass[i].apply_phone,list数组中是否存在,不存在,返回false,push()到list数组中,list数组始终存放新的数据
MargeEvent(){
for (let i = 0; i < Iclass.length; i++) {
// false 不存在; 不存在push到list
if (this.RemoveSameEvent(this.list, Iclass[i] ) === false) {
this.list.push(Iclass[i]);
}
}
}
// 数组是否包含该对象
RemoveSameEvent(list, obj) {
let bool = false;
for(let a=0;a<list.length;a++){
// 这里手机号作为判断依据,String()主要是为了将值转换为统一的类型,防止两个数组的存在的apply_phone类型不一致而报错或数据合并去重错误
if (String(list[a].apply_phone) === String(obj.apply_phone)) {
bool = true; // 存在
}
}
// bool等于 false 代表list中不存在这条数据, bool等于true 代表list存在这条数据
return bool;
},