Javascript 使用可变数量的变量创建自定义json对象

Javascript 使用可变数量的变量创建自定义json对象,javascript,arrays,node.js,json,javascript-objects,Javascript,Arrays,Node.js,Json,Javascript Objects,我有一个json对象: [ { "trip": [ { "place": { "id": 8, "name": "New York", }, "group": 1 } }, ... ] 我可以有N个组,因此我需要创建一个对象数组,如下所示: [ { "group1": "New York", "group2": "Los Angeles"

我有一个json对象:

[
  {
    "trip": [
      {
        "place": {
          "id": 8,
          "name": "New York",
        },
        "group": 1
      }
  },
  ...
]
我可以有N个组,因此我需要创建一个对象数组,如下所示:

[
   {
     "group1": "New York",
     "group2": "Los Angeles",
     "group3": "Rome",
     ...
   }
]
每个组称为groupX,其中X是取自第一个数组中每个对象中每个“组”实例的数字,其值必须取自第一个数组中每个对象中的“名称”实例

我怎么做?提前谢谢

.map()
可方便地获取结果数组,将函数应用于现有数组的每个元素。大概是这样的:

[
   {
     "group1": "New York",
     "group2": "Los Angeles",
     "group3": "Rome",
     ...
   }
]
var obj=[{
“旅行”:[{
“地点”:{
“id”:8,
“名称”:“纽约”,
},
“集团”:1
}]
},
{
“旅行”:[{
“地点”:{
“id”:8,
“名称”:“伦敦”,
},
“集团”:2
}]
},
{
“旅行”:[{
“地点”:{
“id”:8,
“名称”:“东京”,
},
“集团”:3
}]
},
]
变量结果=对象映射((数组元素)=>{
let group=“group”+字符串(数组_元素['trip'][0]['group'])
let place=String(数组_元素['trip'][0]['place']['name'])
让to_返回={};
to_return[组]=地点
返回到_返回;
})
console.log(结果)
/*
[
{“第一组”:“纽约”},
{“第二组”:“伦敦”},
{“第三组”:“东京”}
]

*/
您可以这样做:

[
   {
     "group1": "New York",
     "group2": "Los Angeles",
     "group3": "Rome",
     ...
   }
]
let数据=[
{'trip':[{'place':{'id':8,'name':'newyork'},'group':1}]},
{'trip':[{'place':{'id':9,'name':'losangeles'},'group':2}]},
{'trip':[{'place':{'id':10,'name':'Rome'},'group':3}]},
]
让分组=数据.reduce(函数(分组,当前){
分组['group'+current.trip[0]。group]=current.trip[0]。place.name;
分组返回;
}, {})

控制台日志(分组)
在JS中,
obj.property1
相当于
obj['property'+1]
obj['prop'+'erty1']
。您真的想输出一个包含单个对象的数组,其中该单个对象的属性是所有组的名称吗?非常感谢@hugo的帮助,问题已经解决。1。为什么要进行字符串(…)转换?两者似乎都是多余的。2.只需写
return{[group]:place}
而不是最后三行。3.OP要求一个包含N个键“groupN”的obj,而不是每一个键都有N个obj。@如果您是以包含单个元素的数组形式来查找上述对象,则使用reduce()可能更好。你需要什么并不十分清楚。