记录一下自己了解的三种去重方法
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)
