寻找一种干净而巧妙的方法来编写以下代码:
'true'
和true
返回'true'
'false'
,false
,''
和undefined
返回'false'
答案 0 :(得分:2)
var getBoolAsString = function (x) {
if (x === 'false' || !x) {
return 'false';
} else {
return 'true';
}
}
以上内容涵盖了您发布的案例,以及'false'
其他虚假值,例如null
和zero
,'true'
。
虽然这看起来像反模式。为什么需要将布尔值作为字符串?
答案 1 :(得分:0)
function isKindaTruth(val) {
var truthValues = ['true', true];
var falseValues = ['false', false, '', undefined];
if (truthValues.indexOf(val) !== -1) {
return 'true';
}
if (falseValues.indexOf(val) !== -1) {
return 'false';
}
function ValueException(message) {
this.message = message;
this.name = "ValueException";
}
throw new ValueException("Value of " + val + " is not expected or wanted.");
}
答案 2 :(得分:0)
我实际上最终做了什么:
var output = 'api parameter=' + !(!input || input === 'false')