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)