JS中如何快速把字符串false转换成布尔类型?

我写了一个MVC版的TodoList,这是其中一段代码,其中用到了formidable,蛋疼的是formidable会把前端发过来的false转化成字符串的"false",这个和我的预期不一样,所以我需要把字符串转回Boolean,下面是我的笨办法:

exports.changeTodo = function(req, res) {
    var form = new formidable.IncomingForm()
    form.parse(req, function(err, fields){
        var id = fields.id
        var k = fields.k
        var v = fields.v
        if(v == "true"){
            v = true
        } else if (v == "false"){
            v = false
        }
        todo.changeTodo(id, k, v, function(err) {
            res.json({"result": err ? -1 : 1})
        })
    })
}

请问有什么好的办法解决字符串false转换成布尔类型的问题呢?或者是怎么规避formidable自动转换其他数据类型为字符串的问题呢?

阅读 33.9k
7 个回答
var v = fields.v === 'true'

var a = 0;
!!a = ture;
直接用双!就能强制转换

let bool = {
    'true': true,
    'false': false
};
bool[ v ] !== undefined ? bool[ v ] : false;

但,还是推荐改成传1、0,然后只要!!+v就可以获得boolean了

改成0,1做false,true不就行了。

<script type="text/javascript">
    var str = "true"
    var result = str ==="true"
    document.write(result);
    if(result){
        alert("ok");
    }
</script>

str为"true"时,result为true
str为"false"时,result为false
希望能帮到你

let bool=string==="true";
//string为你需要转换的真假字符串,bool为你需要的转换结果
推荐问题
宣传栏