0

我在节点工作,但我认为这主要是纯粹的 Javascript 问题。可以说我有一个像这样的简单对象:

var simpleObject = {
  decimal: ' 314,2351 ', 
  id: '324fgfdhf34',
  mail: 'anders@JEJR.se'
  something: 'whateever...'
}

现在我想创建一个简单的清理函数,它将对象[属性] 作为参数,更改它,然后直接保存。我想将此功能放在节点模块中并要求它。

现在我在我的应用程序中需要的模块中有这个功能(以及更多......)并绑定到变量名“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)
4

1 回答 1

5

你不能完全按照你的意愿调用它,因为当你传递参数时simpleObject.decimal你丢失了对simpleObject. 您可以改为这样做,这非常接近:

exports.toFloat = function(obj, propName) {
  obj[propName] = parseFloat(obj[propName].replace(',', '.'));
}
// Usage:
purify.toFloat(simpleObject, 'decimal');
于 2013-10-07T13:37:25.413 回答