O(n) vs O(3n)

Benchmark created on


Setup

const people = [
  [{ hair: 'red' }, { eyes: 'blue' }, { age: 5 }],
  [{ hair: 'red' }, { eyes: 'blue' }, { age: 50 }],
  [{ hair: 'red' }, { eyes: 'brown' }, { age: 5 }],
  [{ hair: 'red' }, { eyes: 'brown' }, { age: 50 }],
  [{ hair: 'black' }, { eyes: 'blue' }, { age: 5 }],
  [{ hair: 'black' }, { eyes: 'blue' }, { age: 50 }],
  [{ hair: 'black' }, { eyes: 'brown' }, { age: 5 }],
  [{ hair: 'black' }, { eyes: 'brown' }, { age: 50 }],
]

Test runner

Ready to run.

Testing in
TestOps/sec
O(n)
function isRedHairedBlueEyedChild(props) {
  return props.some((p) => {
    if (p.hair === 'red') return true
    if (p.eyes === 'blue') return true
    if (p.age < 10) return true
    return false
  })
}

for (const p of people) {
  console.log(isRedHairedBlueEyedChild(p))
}
ready
O(3n)
function isRedHairedBlueEyedChild(props) {
  return (
    props.some((p) => p.hair === 'red') ||
    props.some((p) => p.eyes === 'blue') ||
    props.some((p) => p.age < 10)
  )
}

for (const p of people) {
  console.log(isRedHairedBlueEyedChild(p))
}
ready

Revisions

You can edit these tests or add more tests to this page by appending /edit to the URL.