我在节点工作,但我认为这主要是纯粹的Javascript问题。 可以说我有一个像这样的简单对象:
var simpleObject = {
decimal: ' 314,2351 ',
id: '324fgfdhf34',
mail: 'anders@JEJR.se'
something: 'whateever...'
}
现在我想创建一个简单的清理函数,它将对象[property]作为参数,更改它并直接保存。我想将此函数放在节点模块中并要求它。
现在我在我的应用程序中需要的模块中有这个功能(还有一些......)并且绑定到变量名称“purify”
exports.toFloat = function(str) {
str = str.replace(',', '.');
str = parseFloat(str);
return str;
}
在我的应用程序中,我可以写这个来使用函数:
simpleObject.decimal = purify.toFloat(simpleObject.decimal)
但我希望能够写出更短的内容......就像这样:
purify.toFloat(simpleObject.decial)
...并更改值并直接保存。
问题:我如何更改上面的代码,以便我可以写下来并使其有效:
purify.toFloat(simpleObject.decial)
答案 0 :(得分:5)
您无法完全按照自己的意愿调用它,因为当您将参数作为simpleObject.decimal
传递时,您丢失了对simpleObject
的引用。你可以这样做,这非常接近:
exports.toFloat = function(obj, propName) {
obj[propName] = parseFloat(obj[propName].replace(',', '.'));
}
// Usage:
purify.toFloat(simpleObject, 'decimal');