数组对象去重

2020-04-17  本文已影响0人  gem_Y

数组对象去重

https://dev.to/vuevixens/removing-duplicates-in-an-array-of-objects-in-js-with-sets-3fep
方法一:

    const arr = [{
      id: 1,
      name: 'gem'
    }, {
      id: 2,
      name: 'gan'
    }, {
      id: 1,
      name: 'yin'
    }]

    const uniqueArr1 = Array.from(new Set(arr.map(a => a.id)))
    console.log(uniqueArr1) // [1, 2]

    const uniqueArr2 = Array.from(new Set(arr.map(a => a.id)))
                      .map(id => {
                        return arr.find(a => a.id === id)
                      })
    console.log(uniqueArr2) // [{id: 1, name: 'gem}, {id: 2, name: 'gan}]

方法二:

    const arr = [{
      id: 1,
      name: 'gem'
    }, {
      id: 2,
      name: 'gan'
    }, {
      id: 1,
      name: 'yin'
    }]

    const filteredArr = arr.reduce((acc, current) => {
      const x = acc.find(item => item.id === current.id);
      console.log(acc, current, x)
      if (!x) {
        return acc.concat([current]);
      } else {
        return acc;
      }
    }, [])

    console.log('filteredArr', filteredArr)
image.png

方法三:
根据数组中的对象的serviceName属性进行去重,如果serviceName一样的话,只留一条

image image
上一篇 下一篇

猜你喜欢

热点阅读