// 写了一段 兼容 IE6 🐶
// 只存在一次两层循环
// 循环的过程中重新建 2 个数组,数组里面放新的对象,对象里面把原始值存进去,加个计数值
var arr1=["a","b","c","d","e","f","a","b","a","b"] //字符串意思意思,代替相同的对象
var arr2=["a","b","c","c","c","c","z","z","z","a"]
var arr11=[],arr22=[];
for(var i=0;i<arr1.length;i++){
arr11.push({value:arr1, hit:0});
}
for(var i=0;i<arr2.length;i++){
var obj2={value:arr2, hit:0};
arr22.push(obj2);
for(var j=0;j<arr11.length;j++){ //给 arr11 计数
var obj1=arr11[j];
if(obj1.value==obj2.value){ //自行比较两个对象是否相等
obj1.hit++;
obj2.hit++;
}
}
}
//得到已存在的结果
arr2.length=0; //?
for(var i=0;i<arr22.length;i++){
if(arr22.hit){
arr2.push(arr22.value);
}
}
//添加缺失的
for(var i=0;i<arr11.length;i++){
if(!arr11.hit){
arr2.push(arr11.value);
}
}
console.log(arr2); |