如何在没有 if else、switch 或 javascript 中的内置函数的情况下实现逻辑
How can I implement logics without if else, switch or a built-in function in javascript
假设我们有函数,当传递 5 给它时 returns 3 和当传递 3 给它时 return 5。我知道使用 if else 和 switch 很容易。
例如
function countReturn(number){
if(number === 3){
return 5
}
if(number === 5){
return 3
}
}
但是如果没有 if else、switch 或任何内置函数,我如何实现相同的逻辑?
您可以求和 (3 + 5) 和 return 实际数字的增量。
function threeOrFive(value) {
return 8 - value;
}
console.log(threeOrFive(3)); // 5
console.log(threeOrFive(5)); // 3
您可以将 return 个值存储在一个数组中:
function countReturn(n) {
let a = [,,,5,,3];
return a[n];
}
对于其他输入,这将 return undefined
,就像您的原始代码一样。
你可以像这样用三进制
return number === 3 ? 5 : (number === 5 ? 3 : 0);
或者你可以用 object
const obj = {
"5": 3,
"3": 5
};
return obj[number];
我们可以return 5 和 3 之间的异或值:
return number ^ 6
实现相同的逻辑,当给定 5
时,它会 return 3
反之亦然
假设我们有函数,当传递 5 给它时 returns 3 和当传递 3 给它时 return 5。我知道使用 if else 和 switch 很容易。
例如
function countReturn(number){
if(number === 3){
return 5
}
if(number === 5){
return 3
}
}
但是如果没有 if else、switch 或任何内置函数,我如何实现相同的逻辑?
您可以求和 (3 + 5) 和 return 实际数字的增量。
function threeOrFive(value) {
return 8 - value;
}
console.log(threeOrFive(3)); // 5
console.log(threeOrFive(5)); // 3
您可以将 return 个值存储在一个数组中:
function countReturn(n) {
let a = [,,,5,,3];
return a[n];
}
对于其他输入,这将 return undefined
,就像您的原始代码一样。
你可以像这样用三进制
return number === 3 ? 5 : (number === 5 ? 3 : 0);
或者你可以用 object
const obj = {
"5": 3,
"3": 5
};
return obj[number];
我们可以return 5 和 3 之间的异或值:
return number ^ 6
实现相同的逻辑,当给定 5
时,它会 return 3
反之亦然