三種去重的方法


 

記錄一下自己了解的三種去重方法

 

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