如何在jQuery对象中替换1为true

时间:2013-05-31 12:17:30

标签: jquery

我有一个传递给函数的对象:

function(config['options'])

这里有一些值,例如config['options']['property1']被设置为1,我希望在传递给它之前将其更改为true(如明智的0到false)功能

我如何做到这一点,我似乎无法用.each()

来计算

3 个答案:

答案 0 :(得分:8)

options是一个对象,因此使用for-in循环来迭代属性:

for (var key in config.options) {
    var current = config.options[key];

    if (current === 1) {
        config.options[key] = true;
    }

    if (current === 0) {
        config.options[key] = false;
    }
}

答案 1 :(得分:1)

您可以使用double negation将值转换为布尔值。 !!1变为true!!0变为false

答案 2 :(得分:0)

这个与双重否定有关:

var obj = {
    prop1: 1,
    prop2: '1',
    prop3: 0,
    prop4: '0',
    prop5: true,
    prop6: false,
    prop7: 'test'
}, prop, val;

for(prop in obj) {
    val = Number(obj[prop]);

    !isNaN(val) && (obj[prop] = !!val);
}

结果(JSON字符串化):

{
    "prop1": true,
    "prop2": true,
    "prop3": false,
    "prop4": false,
    "prop5": true,
    "prop6": false,
    "prop7": "test"
}