我有两个json文件,我想在其中一个json节点的一个对象,另一个带有相同节点名称的json节点。
示例: -
json file1: -
{
"teams": [
{
"id": 1,
"name": "Australia",
"shortName": "AUS",
"flag": "https://s3/Images/flags/australia.png",
"group": "d",
"rank": "39",
"starRating": "2",
},
{
"id": 2,
"name": "Argentina",
"shortName": "AGR",
"flag": "https://s3/Images/flags/ar.png",
"group": "d",
"rank": "5",
"starRating": "5",
}]
}
第二个JSON文件:
{
"standings": {
"C": [
{
"group": "C",
"rank": 0,
"team": "France",
"teamId": 773,
"playedGames": 0,
"crestURI": "https://upload.wikimedia.org/wikipedia/en/c/c3/Flag_of_France.svg",
"points": 0,
"goals": 0,
"goalsAgainst": 0,
"goalDifference": 0
},
{
"group": "C",
"rank": 0,
"name": "Australia",
"teamId": 779,
"playedGames": 0,
"crestURI": "",
"points": 0,
"goals": 0,
"goalsAgainst": 0,
"goalDifference": 0,
}]
}
基本上,我想在第二个JSON中匹配"name":"Australia"
,并在第一个JSON中添加"name":"Australia"
中的AUS的整个对象,依此类推,依此类推。
有什么建议我该如何实现?
编辑: - 预期输出。
{
"standings": {
"C": [
{
"group": "C",
"rank": 0,
"team": "France",
"teamId": 773,
"playedGames": 0,
"crestURI": "https://upload.wikimedia.org/wikipedia/en/c/c3/Flag_of_France.svg",
"points": 0,
"goals": 0,
"goalsAgainst": 0,
"goalDifference": 0
},
{
"group": "C",
"rank": 0,
"name": "Australia",
"teamId": 779,
"playedGames": 0,
"crestURI": "",
"points": 0,
"goals": 0,
"goalsAgainst": 0,
"goalDifference": 0,
"id": 1,
"name": "Australia",
"shortName": "AUS",
"flag": "https://s3/Images/flags/australia.png",
"group": "d",
"rank": "39",
"starRating": "2",
}]
}
}
无论如何,这个问题已经在这里得到回答。因为成为初学者的众多问题之一是您不知道要搜索什么如果您想稍后匹配名称!
<script>
const arr1 = [
{ "id": 1,
"name": "Australia",
"shortName": "AUS",
"flag": "https://s3/Images/flags/australia.png",
"group": "d",
"rank": "39",
"starRating": "2"
},
{
"id": 2,
"name": "Argentina",
"shortName": "AGR",
"flag": "https://s3/Images/flags/ar.png",
"group": "d",
"rank": "5",
"starRating": "5"
}];
const arr2 = [
{
"group": "C",
"rank": 0,
"team": "France",
"teamId": 773,
"playedGames": 0,
"crestURI": "https://upload.wikimedia.org/wikipedia/en/c/c3/Flag_of_France.svg",
"points": 0,
"goals": 0,
"goalsAgainst": 0,
"goalDifference": 0
},
{
"group": "C",
"rank": 0,
"name": "Australia",
"teamId": 779,
"playedGames": 0,
"crestURI": "",
"points": 0,
"goals": 0,
"goalsAgainst": 0,
"goalDifference": 0
}];
const result = arr1.map(val => {
return Object.assign({}, val, arr2.filter(v => v.team === val.name)[0]);
});
console.log(result);
</script>