Javascript - 转换1/0&的好方法'true'/'false'&布尔值为true / false

时间:2014-06-18 09:17:02

标签: javascript

我有一个变量,有时可以传递为1/0(整数或字符串数​​),或者它可以作为字符串传递' true' /' false&#39 ;或者作为实际的布尔值true / false。我想将所有情况转换为实际的布尔值。

除了做一堆if语句和===之外,还有更快更优雅的方法吗?

1 个答案:

答案 0 :(得分:5)

使用带有映射的对象:

var translations = {
    "true": true,
    "1": true,
    "false": false,
    "0": false
};

然后

var my_value = "true";  # or 1, "false", 0... etc
var my_bool = translations[my_value];

在JS中,对象的键自动转换为字符串(如果我的内存没有失败则通过调用.toString),因此true"true"将返回相同的结果。与0"0"

相同

修改

如果您的环境支持它,那么使用完全空的对象会更好:

var translations = Object.create(null);
translations['true'] = true;
...