我有一个变量,有时可以作为 1/0(整数或字符串数字)传递,也可以作为字符串“true”/“false”或实际 bool 值 true/false 传递。我想将所有案例转换为实际的 bool 值。
除了做一堆 if
语句和 ===
有没有更快更优雅的方法呢?
最佳答案
使用带有映射的对象:
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;
...
关于Javascript - 将 1/0 & 'true'/'false' & true/false 转换为 bool 值的好方法,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/24281649/