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

我正在做的API调用返回空对象来代替null 。 Tedious不喜欢这个,所以在我保存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; 

这是不正确的,我很好奇,如果有人知道为什么,如何解决这个问题。 我特别感兴趣的是为什么,如果我还要打扰,甚至返回一个对象的副本(是通过引用传递,或…?)

_.forOwn公开了callback函数中的键; 因此,这工作:

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

另外,作为@apsillers提到,我没有做太多与我的任务,所以这个方法只是改变input对象,并不试图克隆它,并返回一个副本。