我有一个传递给函数的对象:
function(config['options'])
这里有一些值,例如config['options']['property1']
被设置为1,我希望在传递给它之前将其更改为true
(如明智的0到false
)功能
我如何做到这一点,我似乎无法用.each()
答案 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"
}