Run details:
Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_6) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/86.0.4240.111 Safari/537.36
Chrome 86
Mac OS X 10.15.6
Desktop
4 years ago
Test name Executions per second
using reduce function 324955.9 Ops/sec
using filter function 6743032.5 Ops/sec
Script Preparation code:
AخA
 
const combined = [
  {oclcNumber: 1},
  {oclcNumber: 2},
  {oclcNumber: 3},
  {oclcNumber: 4},
  {oclcNumber: 5},
  {oclcNumber: 6},
  {oclcNumber: 7},
  {oclcNumber: 8},
  {oclcNumber: 9},
  {oclcNumber: 10},
  {oclcNumber: 2},
]
Tests:
  • using reduce function

    x
     
    const combined = [
      {oclcNumber: 1},
      {oclcNumber: 2},
      {oclcNumber: 3},
      {oclcNumber: 4},
      {oclcNumber: 5},
      {oclcNumber: 6},
      {oclcNumber: 7},
      {oclcNumber: 8},
      {oclcNumber: 9},
      {oclcNumber: 10},
      {oclcNumber: 2},
    ]
    combined.reduce((acc, current) => {
      return (acc.find(record => record.oclcNumber === current.oclcNumber) ? acc : acc.concat(current))
    }, [])
  • using filter function

     
    const combined = [
      {oclcNumber: 1},
      {oclcNumber: 2},
      {oclcNumber: 3},
      {oclcNumber: 4},
      {oclcNumber: 5},
      {oclcNumber: 6},
      {oclcNumber: 7},
      {oclcNumber: 8},
      {oclcNumber: 9},
      {oclcNumber: 10},
      {oclcNumber: 2},
    ]
    combined.filter((current, i, arr) => {
      return arr.findIndex(record => (record.oclcNumber === current.oclcNumber)) === i
    })