基本上,如果index
等于0,我希望它return 1
,如果它等于1
,我希望它return 0
< / p>
所以我创造了这个。
let reverseIndex = function() {
console.log(timeIndex) // 1
let i
timeIndex === 0 ? i = 1 : i = 0
return i
}()
function getDiff(time) {
console.log(reverseIndex) // 1 (WRONG)
}
但如果我将功能改为仅包括
function getDiff(time) {
let i
timeIndex === 0 ? i = 1 : i = 0
console.log(i) // 0 (CORRECT)
}
答案 0 :(得分:2)
为什么不在三元语句中使用赋值?
let i = timeIndex === 0 ? 1 : 0;
使用truty / falsy值缩短,转换为boolean并转换为布尔值。
let i = +!timeIndex;
或者只是在不使用临时变量的情况下返回值
return +!timeIndex;
答案 1 :(得分:-1)
您需要注意变量的范围。 timeIndex
定义在哪里?
获得正确结果的最简单的功能是
function reverse(i) {
if (i==0) return 1;
if (i==1) return 0;
}