IQ Test

codewars 6kyu

by trentHarlem

JavaScript

function iqTest(numbers) {
  const numArr = numbers.split(' ')
  //  console.log(numArr)
  //  console.log(numArr.filter(n => n % 2 === 1))
  return numArr.filter(n => n % 2 === 0).length === 1 ?
    numArr.indexOf(numArr.filter(n => n % 2 === 0).join('')) + 1 :
    numArr.indexOf(numArr.filter(n => n % 2 === 1).join('')) + 1
}

function iqTest2(numbers) {
  const numArr = numbers.split(' ')
  const odds = numArr.slice().filter(n => n % 2 === 1).join(' ')
  const evens = numArr.slice().filter(n => n % 2 === 0).join(' ')
  //console.log(numArr.indexOf(odds),numArr.indexOf(evens))
  if (odds.length === 1) {
    return numArr.indexOf(odds) + 1
  } else {
    return numArr.indexOf(evens) + 1
  }
}

//return the index of the unique num. is a string of mostly odds return the index (plus 1) of the even number or vise-versa
// the passes sample tests but NOT final tests

/* function iqTest(numbers) {
  const numArr = numbers.split(' ')
  const odds = numArr.slice().filter(n => n % 2 === 1).join('')
  const evens = numArr.slice().filter(n => n % 2 === 0).join('')
  //console.log(numArr.indexOf(odds),numArr.indexOf(evens))
  return odds.length === 1 ? numArr.indexOf(odds) + 1 : numArr.indexOf(evens) + 1
} */

// sorting evens odds ... not the challenge
/* function IQTest(numbers) {
//  const numArr = numbers.split(' ')
  const odds = numbers.split(' ').filter(n=>n%2===1)
  const evens = numbers.split(' ').filter(n=>n%2===0)
return evens.length===1?evens:odds
  
  //return +numArr.slice().filter(n => n % 2 === 0).map((n, i, arr) => arr.length === 1 ? n : numArr.filter(n => n % 2 === 1)).join('')
}
 */
console.log(iqTest('2 4 7 8 10'), 3)
//console.log(iqTest('3 5 7 9 10'), 5)
//console.log(iqTest('1 2 2'), 1)
console.log(iqTest('88 96 66 51 14 88 2 92 18 72 18 88 20 30 4 82 90 100 24 46'), '?')
console.log(iqTest('8 6 6 1'), '?')
console.log(iqTest('100 99 100'), 2)
//console.log(iqTest('5 3 2'), 3)
//console.log(iqTest('43 28 1 91'), 2)