数组对象去重

问题描述:数组去重比较容易,但是二维对象数组去重怎么处理

解决办法:

var arr1 = [
        { id: 1, type: 'qw' },
        { id: 2, type: 'qw' },
        { id: 1, type: 'qw2' },
        { id: 3, type: 'qw111' },
        { id: 3, type: 'qw222' },
        { id: 3, type: 'qw333' }
      ]
      // 第一种方法:reduce
      var hash = {}
      var arr2 = arr1.reduce(function(item, next) {
        console.log(item, '0')
        hash[next.id] ? '' : hash[next.id] = true && item.push(next)
        return item
      }, [])
      console.log(arr2, '数组去重')
      // 第二种方法
      var obj = {}
      var arr2 = []
      arr1.forEach((ele, index) => {
        if (!obj[ele.id]) {
          arr2.push(ele)
          obj[ele.id] = ele.id
        }
      })
      console.log(arr2, '去重数组?')
      // 第三种方法  这个方法会改变原数组
      arr1.forEach((ele, index, arr) => {
        for (let i = index + 1; i < arr1.length; i++) {
          if (ele.id === arr1[i].id) {
            arr1.splice(i, 1)
            i = i - 1
          }
        }
      })
      console.log(arr1, '数组')

 

posted @ 2021-04-26 20:18  沁猿春  阅读(124)  评论(0)    收藏  举报