【发布时间】:2016-07-11 03:37:53
【问题描述】:
我正在研究 CodeWars 问题(IQ 测试)的解决方案,其中给您一串数字,除 1 之外的所有数字都是偶数或奇数。您需要返回与其他数字不同的数字位置的索引加 1。
我对下面发布的解决方案中显示 & 1 的行感到困惑。代码在 && 或 & 1 被带走时不起作用。
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]
}
另外,您会考虑使用 & 1 作为最佳实践还是只是“聪明”的代码?
【问题讨论】:
标签: javascript boolean logic operators