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

标签 javascript

我有一个变量,有时可以作为 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/

相关文章:

javascript - 在 Internet Explorer 动态编写的样式表中添加 !important

javascript - 按嵌套键值对对象数组进行排序

javascript - 为什么我不能在 node.js 中对这个 URL 进行 url 编码?

javascript - 使用 javascript '_this' 声明时如何设置 'self' 或 'class'

javascript - 使用动态字段名称更新数据

JavaScript 增量

javascript - VS 2012 中的自动 JavaScript 代码缩进

javascript - 连续激活div

javascript - 如何移动谷歌地图标记并获取当前的纬度和经度

javascript - 通过 UIWebView 在 JavaScript 中处理 Window.close - Obj C