Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/452.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
使用Javascript从Json中的子元素创建新键_Javascript_Json_Ecmascript 6_Arrow Functions - Fatal编程技术网

使用Javascript从Json中的子元素创建新键

使用Javascript从Json中的子元素创建新键,javascript,json,ecmascript-6,arrow-functions,Javascript,Json,Ecmascript 6,Arrow Functions,我想使用ES6/ES5从json中的子值创建新键。我尝试使用箭头函数,但没有得到结果。首先你可以在下面看到我的json部分 [ { matchId:307, matchStatusId:5, matchHomeScore:0, matchAwayScore:0, matchTime:0, homeClubId:608, homeClub:{ clubId:608,

我想使用ES6/ES5从json中的子值创建新键。我尝试使用箭头函数,但没有得到结果。首先你可以在下面看到我的json部分

[  
   {  
      matchId:307,
      matchStatusId:5,
      matchHomeScore:0,
      matchAwayScore:0,
      matchTime:0,
      homeClubId:608,
      homeClub:{  
         clubId:608,
         clubName:"Annaba"
      },
      awayClubId:609,
      awayClub:{  
         clubId:609,
         clubName:"Bazer Sakhra"
      },
      leagues:[  
         {  
            leagueId:65,
            parentLeagueId:null,
            leagueName:"ALGERIA"
         },
         {  
            leagueId:66,
            parentLeagueId:65,
            leagueName:"Algeria Cup"
         }
      ]
   },
]
我想创建新的父密钥。它将从子项的值中获取值,并进行组合。子项目编号可更改。并非每次都有2项。 总联赛:“阿尔及利亚-阿尔及利亚杯”

   leaguesGeneral:"ALGERIA - Algeria Cup"   
   leagues: [  
      {  
         leagueId:65,
         parentLeagueId:null,
         leagueName:"ALGERIA"
      },
      {  
         leagueId:66,
         parentLeagueId:65,
         leagueName:"Algeria Cup"
      }
   ]
我找到了这个方法。但它结合了父母的一切

data = data.map(function (x) {
    var keys = Object.keys(x);
    x.newKeyValue = keys.map(key => x[key]).join('-');
    return x;
});

可以使用将
leaguesGeneral
键添加到数组中的每个对象

o.leagues.map(({ leagueName }) => leagueName).join(' - ')
const data=[
{  
matchId:307,
matchStatusId:5,
核心:0,
matchAwayScore:0,
比赛时间:0,,
HomeClubBid:608,
家庭俱乐部:{
俱乐部标:608,
俱乐部名称:“安娜巴”
},
阿瓦库比德:609,
awayClub:{
俱乐部标:609,
俱乐部名称:“Bazer Sakhra”
},
联盟:[
{  
联盟编号:65,
parentLeagueId:null,
联盟名称:“阿尔及利亚”
},
{  
联盟编号:66,
家长联盟编号:65,
联盟名称:“阿尔及利亚杯”
}
]
},
];
const result=data.map(o=>{
国际单项体育联合会{
o、 leaguesGeneral=o.leagues.map({leagueName})=>leagueName.join('-');
}
返回o;
})

console.log(result)
您是否有一个基于示例JSON的预期输出示例?我不明白您想在这里实现什么。结果JSON中应该包含什么?您可以使用下面的代码
data.forEach(o=>o.leaguesGeneral=o.leagues.map(({leagueName})=>leagueName.join('-')我用示例进行了解释。我想创建类似以下内容的
leaguesGeneral:“阿尔及利亚-阿尔及利亚杯”
@MehmetDemiray您想保留原始JSON对象的所有其余部分,还是只保留leaguesGeneral和leagues部分?不清楚,很快回答!谢谢:)