我有一个对象,它被传递给这样的函数:
function(config['options'])
这里有某些值,例如config['options']['property1']设置为 1,我想在将它们传递给此函数之前将其更改为true(例如 0 到)。false
我该怎么做,我似乎无法使用.each()
我有一个对象,它被传递给这样的函数:
function(config['options'])
这里有某些值,例如config['options']['property1']设置为 1,我想在将它们传递给此函数之前将其更改为true(例如 0 到)。false
我该怎么做,我似乎无法使用.each()
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;
    }
}
    您可以使用double negation将值转换为布尔值。!!1成为true和!!0成为false
这个适用于双重否定:
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"
}