Script Preparation code:
x
 
function stray_happy(numbers) {
  numbers = numbers.sort((a, b) => a - b);
  if (numbers[0] !== numbers[1]) {
    return numbers[0];
  }
  else {
    return numbers[numbers.length - 1];
  }
}
function stray_heretic(numbers) {
  return numbers.find(i => numbers.filter(j => j === i).length === 1);
}
function stray_shaye(numbers) {
  return +numbers.sort((a, b) => a - b)
    .filter((n,i,a) => (i === 0 && a[0] !==a[1]) || (i === a.length-1 && a[a.length-1] !== a[a.length-2]));
}
function stray_user(a) {
  return a.find(v => a[0] != a[1] ? v != a[2] : v != a[0])
}
function stray_user_2(a) {
    a.find(a[0] != a[1] ? (v, i, a) => v != a[2] : (v, i, a) => v != a[0])
}
var numbers = [1,1,1,1,1,1,1,2,1,1,1,1,1,1,1]
Tests:
  • stray_happy

     
    var n = stray_happy(numbers)
  • stray_heretic

     
    var n = stray_heretic(numbers)
  • stray_shaye

     
    var n = stray_shaye(numbers)
  • stray_user

     
    var n = stray_user(numbers)
  • stray_user_2

     
    var n = stray_user_2(numbers)
Rendered benchmark preparation results:

Suite status: <idle, ready to run>

Previous results

Experimental features:

  • Test case name Result
    stray_happy
    stray_heretic
    stray_shaye
    stray_user
    stray_user_2

    Fastest: N/A

    Slowest: N/A

Latest run results:
Run details: (Test run date: one year ago)
Mozilla/5.0 (X11; Linux x86_64; rv:109.0) Gecko/20100101 Firefox/118.0
Firefox 118 on Linux
View result in a separate tab
Test name Executions per second
stray_happy 2469699.2 Ops/sec
stray_heretic 406825.7 Ops/sec
stray_shaye 909649.6 Ops/sec
stray_user 3903393.5 Ops/sec
stray_user_2 5016806.5 Ops/sec