从循环到数组推送数据后的重复键

时间:2019-06-20 10:35:09

标签: node.js typescript

这是我的请求正文:

{
    "data": [
        {"firstName": "a"}, {"lastName": "b"}
    ]
}

这是我的脚本:

var body = request.body;
for(var i = 0;i < body.data.length;i++){
 var obj = body.data[i];                                                         
 keyes.push(Object.keys(obj));                                                            
 console.log(keyes);
}

我正在尝试将响应数据从循环推送到数组,以及为什么我得到这样的响应:

[ [ 'firstName' ] ]
[ [ 'firstName' ], [ 'lastName' ] ]

我想要这样的响应:

[ [ 'firstName' ], [ 'lastName' ] ]

谢谢

3 个答案:

答案 0 :(得分:0)

在您的情况下,似乎不需要每个步骤都需要最终输出。 为此,您需要在循环外部打印console.log(keyes)。

谢谢

阿什什

答案 1 :(得分:0)

尝试:

const keyes = request.body.data.map(Object.keys);

它应该给您这个结果[ [ 'firstName' ], [ 'lastName' ] ]

  

实际上,您的代码执行的操作完全相同。 for循环完成后,您的[ [ 'firstName' ], [ 'lastName' ] ]属性中就有keyes。要进行验证-您可以将console.log(keyes)语句移到循环之外。

     

您在keyes变量keyes => keys中有错字

答案 2 :(得分:0)

您的代码与要求的代码完全相同,您只需要将console.log放在正确的位置即可。像这样

for(var i = 0;i < body.data.length;i++){
 var obj = body.data[i];
 keyes.push(Object.keys(obj));
}
console.log(keyes)