2016-08-14 25 views
0

我越来越坚持在这一个扭曲我的头......转换与关键值的对象与所述键名对象的数组和值

我想我req.query转换我使用Express来创建一个对象数组,因此我可以将这些数据传递给SQL Server作为存储过程的输入。

这是我的数据 -

{ param1: 'testing123', param2: 'poooool', param300: 'nnnvncn' } 

我希望它看起来像

[{param1: 'testing123'},{param2: 'poooool'},{param300: 'nnnvncn'}] 

任何想法,我将如何得到高于期望的阵列?

编辑:这是我在去年底在node.js中

app.get('/:client/storedproc/:sp', function(req, resp){ 
    var sp = req.params.sp; 
    var obj = req.query; 
    var test = function(){ return Object.keys(obj).map(k => ({ [k]: obj[k] }));} 
    var arr = test(); 
    console.log(arr) 
}); 
+0

回复您的编辑:我会仔细检查这一实际工作。我不确定Node是否支持所有花哨的ES2015。 –

回答

1

运行时,您可以使用Object.keys这个代码。鉴于对象从您的第一个片段o

return Object.keys(o).map(function(k) { 
    var x = {}; 
    x[k] = o[k]; 
    return x; 
}); 

只是为了好玩,在这里这是多么简洁与ES2015:

return Object.keys(o).map(k => ({ [k]: o[k] })); 
+0

该死的ES2015是美丽的 - 我需要开始学习如此多的JS :)谢谢阿萨德 - 我会在最后更新我的帖子。 – Adam91Holt

+0

@ Adam91Holt而这实际上在没有转译器的Node JS中工作? –

+0

@ Adam91Holt顺便说一句,你不需要在那里创建一个单独的'test'函数,因为无论如何你都要关闭'o'。只要做'var arr = Object.keys(obj).map(k =>({[k]:obj [k]}));'' –