平时做各种数据添加的时候,让用户自己添加的数据,表单会很容易多条重复的数据,我们传给后台没要传重复的数据,要根据id或者name之类的唯一属性把重复的数组对象过滤去除
代码:
<!DOCTYPE html>
<html>
<head>
<meta charset="utf-8">
<title></title>
</head>
<body>
<script type="text/javascript">
var myList = [
{id: 1,name: "name1"},
{id: 2,name: "name2"},
{id: 2,name: "name2-2"},
{id: 3,name: "name2-2"}
]
/**
* 删除数组对象中重复的对象
* arr: 源数组 filterField: 需要删除的重复字段,注意是字符串类型
* 返回一个过滤好的,没有重复该字段filterField的数组
* */
const filterArrObj = (arr,filterField) =>{
let newArr = arr.reduce((pre,cur) => pre.some(item => item[filterField] == cur[filterField]) ?
pre : [...pre,cur],[])
return newArr
}
console.log(filterArrObj(myList,'id'))
</script>
</body>
</html>
效果图:
调用方法过滤删除重复name字段的对象
console.log(filterArrObj(myList,'name'))
效果图:
优化了以前写的代码,这是个很好用的方法,望点赞加收藏哦