我有一个对象,它被传递给这样的函数:
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"
}