Tests:
  • Includes

    x
     
    const arr1 = Array.from({ length: 1_000_000 }, () =>
      Math.floor(Math.random() * 100_000),
    )
    const arr2 = Array.from({ length: 1_000_000 }, () =>
      Math.floor(Math.random() * 100_000),
    )
    const fn = () => {
      for (const el of arr1) {
          if (arr2.includes(el)) return true
      }
    }
    fn()
  • new Set

     
    const arr1 = Array.from({ length: 1_000_000 }, () =>
      Math.floor(Math.random() * 100_000),
    )
    const arr2 = Array.from({ length: 1_000_000 }, () =>
      Math.floor(Math.random() * 100_000),
    )
    const fn = () => {
      const set = new Set(arr1)
      for (const el of arr2) {
          if (set.has(el)) return true
      }
    }
    fn()
Rendered benchmark preparation results:

Suite status: <idle, ready to run>

Previous results

Experimental features:

  • Test case name Result
    Includes
    new Set

    Fastest: N/A

    Slowest: N/A

Latest run results:
Run details: (Test run date: one year ago)
Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/17.2.1 Safari/605.1.15
Safari 17 on Mac OS X 10.15.7
View result in a separate tab
Test name Executions per second
Includes 4.8 Ops/sec
new Set 4.4 Ops/sec