我有一个变量,有时可以传递为1/0(整数或字符串数),或者它可以作为字符串传递' true' /' false&#39 ;或者作为实际的布尔值true / false。我想将所有情况转换为实际的布尔值。
除了做一堆if
语句和===
之外,还有更快更优雅的方法吗?
答案 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;
...