I'm looking over the solutions for a CodeWars problem (IQ Test) in which you're given a string of numbers and all the numbers but 1 are either even or odd. You need to return the index plus 1 of the position of the number that's not like the rest of the numbers.
I'm confused about the line that says & 1 in the solution posted below. The code doesn't work w/ && or w/ the & 1 taken away.
function iqTest(numbers){
  numbers = numbers.split(' ')
  var evens = []
  var odds = []
  for (var i = 0; i < numbers.length; i++) {
    if (numbers[i] & 1) { //PLEASE EXPLAIN THIS LINE!
      odds.push(i + 1)
    } else {
      evens.push(i + 1)
    }
  }
  return evens.length === 1 ? evens[0] : odds[0]
}
Also, would you consider using & 1 to be best practice or is it just "clever" code?
 
     
    