三种去重的方法


 

记录一下自己了解的三种去重方法

 

1. 循环两次

 

 

const data = require('../db/data.json')
const people = data.nameList

function uniqueUtil(arr) {
  for (let i = 0; i < arr.length; i++) {
    for (let j = i + 1; j < arr.length; j++) {
      if (arr[i].id === arr[j].id) {
        arr.splice(j, 1)
        j--
      }
    }
  }
  return arr
}

console.log(uniqueUtil(people))

  

2. 使用ES6新增的Set类的特性来去重

 

const data = require('../db/data.json')
const people = data.nameList

const uniquePeople = []
const idSet = new Set()
let idSize = idSet.size

people.forEach(person => {
  idSet.add(person.id)
  if (idSize !== idSet.size) {
    uniquePeople.push(person)
    idSize = idSet.size
  }
})

console.log(uniquePeople)

 

3.  引用lodash的方法去重(uniqBy 使用回调函数(callback function)来进行比较)

var _ = require('lodash')
const data = require('../db/data.json')

const uniquePeople = _.uniqBy(data.nameList, item => item.id)

console.log(uniquePeople)

 


免责声明!

本站转载的文章为个人学习借鉴使用,本站对版权不负任何法律责任。如果侵犯了您的隐私权益,请联系本站邮箱yoyou2525@163.com删除。



 
粤ICP备18138465号  © 2018-2025 CODEPRJ.COM