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_eric(numbers) {
  if (numbers[0] != numbers[1] && numbers[0] != numbers[2]){
      return numbers[0];
  }
  return numbers.find(i => i !== numbers[0]);
}
N = 100
var numbers = Array(N).fill(1);
numbers[Math.floor(Math.random()*N)] = 2;
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_eric

     
    var n = stray_eric(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_eric

    Fastest: N/A

    Slowest: N/A

Latest run results:
Run details: (Test run date: 5 years ago)
Mozilla/5.0 (Windows NT 10.0; Win64; x64; rv:67.0) Gecko/20100101 Firefox/67.0
Firefox 67 on Windows
View result in a separate tab
Test name Executions per second
stray_happy 645755.9 Ops/sec
stray_heretic 9760.0 Ops/sec
stray_shaye 430667.5 Ops/sec
stray_user 1217700.9 Ops/sec
stray_eric 1324060.2 Ops/sec