Node.js,Express,jQuery.param() – 从JSON中删除引号

我使用jQuery.param()序列化客户端上的JSON对象:

var test = {"coordinates":[[-122.610168,37.598167],[-122.288818,37.598167],[-122.288818,37.845833],[-122.610168,37.845833],[-122.610168,37.598167]]}; console.log($.param( test )); 

在发出GET请求之后,在Express路由的服务器端,我访问对象:

 console.log('Server received: ' + JSON.stringify(req.query.coordinates)); 

这将输出下面的注释每个坐标周围的引号:

 Server received: [["-122.610168","37.598167"],["-122.288818","37.598167"],["-122.288818","37.845833"],["-122.610168","37.845833"],["-122.610168","37.598167"]] 

我怎样才能删除报价? 我可以parsing一个string,并使用正则expression式然后parsing回JSON,但这似乎效率低下。 任何人都可以build议过程的哪一部分是添加它们,以及如何删除它们?

有些东西告诉我有一种方法可以通过使用bind在一个单一的链接函数调用中做到这一点,但我能想到的最好的方法是:

 var coords = data.map(function(arr){return arr.map(parseFloat);}) 

这具有非破坏性的益处(原始datavariables保持完整)。

试试像波纹pipe

 var data = [["-122.610168","37.598167"],["-122.288818","37.598167"],["-122.288818","37.845833"],["-122.610168","37.845833"],["-122.610168","37.598167"]] data.forEach(function(arr){ arr[0] = +arr[0]; arr[1] = +arr[1]; }) console.log(data)// prints[[-122.610168,37.598167],[-122.288818,37.598167],[-122.288818,37.845833],[-122.610168,37.845833],[-122.610168,37.598167]]