题目
请使用 Javscript 里的三元运算符实现一个 f(x: number): string
函数,x 的取值与返回值对应关系如下所示:
- x < 0,返回 a
- x > 100,返回 a
- 0 <= x < 20,返回 b
- 20 <= x < 80,返回 c
- 80 <= x <= 100,返回 b
考察点
条件运算,三元运算符解答
const f = (x: number): string => {
return x < 0 ? 'a' : x < 20 ? 'b' : x < 80 ? 'c' : x <= 100 ? 'b' : 'a'
}
发散题目
发散题目一:三元运算符有什么优缺点?
发散题目一:合并返回值重复的情况
考察点:
三元运算符,条件运算符解答
const f = (x: number): string => {
return x < 0 || x > 100 ? 'a' : x < 20 || x >= 80 ? 'b' : 'c'
}
发散题目二:将其改写为 if-else
考察点:三元运算符与 if-else 的相互转换
解答:
解法一:有 if 嵌套
解法二:无 if 嵌套(如果写的是解法一,可以进一步提问这一解法)const f = (x: number): string => {
if (x < 0) {
return 'a'
} else {
if (x < 20 || (x >= 80 && x <= 100)) {
return 'c'
} else {
if (x < 80) {
return 'd'
} else {
return 'b'
}
}
}
}
const f = (x: number): string => {
if (x < 0) {
return 'a'
}
if (x < 20 || (x >= 80 && x <= 100)) {
return 'c'
}
if (x < 80) {
return 'd'
}
return 'b'
}
发散题目三:合并重复区间
参考资料