利用filter和findindex对数组对象去重。

166 阅读1分钟

核心语句

 let arr = arr1.filter((currentValue, currentIndex, selfArr) => {
        return selfArr.findIndex(x => x.Id === currentValue.Id) === currentIndex
  })

这里声明一个数组对象

var arr1 = [
    {id:1,name:'zs',age:18},
    {id:2,name:'ls',age:16},
    {id:3,name:'xh',age:10},
    {id:1,name:'zs',age:8},
    {id:4,name:'xm',age:18},
    {id:5,name:'ls',age:16}
  ] 

①、将id相同的去重(一个判断条件)

let arr = arr1.filter((currentValue, currentIndex, selfArr) => {
        return selfArr.findIndex(x => x.id=== currentValue.id) === currentIndex
  })
  console.log(arr)

得到的结果图片

image.png

②、将name和age相同的去除(两个判断条件)以此类推可以添加多个判断条件

let arr = arr1.filter((currentValue, currentIndex, selfArr) => {
        return selfArr.findIndex(x =>(x.name=== currentValue.name
        && x.age===currentValue.age)
        ) === currentIndex
  })
  console.log(arr)

image.png

最后需要注意的是,剔除掉的都是排在数组后面的重复数据