【发布时间】:2019-05-26 01:17:55
【问题描述】:
我想使用 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:“阿尔及利亚 - 阿尔及利亚杯”
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;
});
【问题讨论】:
-
您是否有基于示例 JSON 的预期输出示例?
-
我不明白你想在这里完成什么。生成的 JSON 应该是什么?
-
您可以使用下面的代码
data.forEach(o => o.leaguesGeneral = o.leagues.map(({leagueName}) => leagueName).join(' - ')); -
我举例说明了。我想创建这样的
leaguesGeneral:"ALGERIA - Algeria Cup" -
@MehmetDemiray 你想保留原始 JSON 对象的所有其余部分,还是只保留leaguesGeneral 和leagues 部分?不清楚。
标签: javascript json ecmascript-6 arrow-functions