需求:将几个数组对象合并后,需要根据数组中的元素去重。
数组合并:
//合并两个数组
arr1.push(...arr2)
或者
var arr3 = arr1.concat(arr2)
根据数组中的元素去重代码如下:
<script type="text/javascript">
var result = {provider:[{isAgree:"同意",userName:"zhang",remark:'ddddd'},{isAgree:"同意",userName:"zhang",remark:'ddddd'},{isAgree:"同意",userName:"李四",remark:'ddddd'},{isAgree:"不同意",userName:"zhang",remark:'ddddd'}],eng:[{isAgree:"同意",userName:"wang",remark:'222'},{isAgree:"同意",userName:"wang",remark:'ddddd'},{isAgree:"同意",userName:"wang",remark:'ddddd'},{isAgree:"不同意",userName:"wu",remark:'ddddd'}]}
console.log(arrUnique(result.provider));
console.log(arrUnique(result.eng));
//根据数组中的对象元素去重
function arrUnique(arr){
// 第一层for用来控制循环的次数
for(var i=0; i<arr.length; i++){
//第二层for 用于控制与第一层比较的元素
for(var j=i+1; j<arr.length; j++){
//如果相等
if(arr[i].isAgree == arr[j].isAgree && arr[i].userName == arr[j].userName){
//删除后面的 即第 j个位置上的元素 删除个数 1 个
arr.splice(j,1);
j--;
}
}
}
return arr;
}
</script>
打印结果: