Javascript 使用可变数量的变量创建自定义json对象
我有一个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"
[
{
"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()可能更好。你需要什么并不十分清楚。