如何在枚举时修改对象属性值

时间:2015-05-21 19:56:17

标签: javascript node.js lodash

API调用我正在返回空对象而不是null。单调乏味并不喜欢这样,所以在保存API响应之前,我使用以下功能清理数据:

var object_to_return = input_object;

_.forOwn(object_to_return, function(key_value) { 
        if (_.isEmpty(key_value)) {
            object_to_return[key_value] = null;
        }
    });

return object_to_return;

这不是非常正确,如果有人知道我为什么以及如何解决它,我很好奇。我特别感兴趣的是为什么以及我是否应该为甚至返回对象的副本而烦恼(是通过引用传入,还是......?)

1 个答案:

答案 0 :(得分:1)

_.forOwn公开回调函数中的键;因此,这有效:

module.exports.convertEmptyObjectsToNull = function(target_object) {
    _.forOwn(target_object, function(property, key) { 
        if (_.isEmpty(property)) {
            target_object[key] = null;
        }
    });
}

另外,正如@apsillers所提到的,我对我的作业没有太多帮助,所以这个方法只是改变了输入对象,并没有尝试克隆它并返回一个副本。