typescript - 在 Angular 的服務中修改 API 回應
我正在嘗試修改 API 請求返回的響應。目前我得到的響應是
[
{
name: "Afghanistan"
},
{
name: "Åland Islands"
}
]
我想把它修改為:
[
{
name: "Afghanistan",
name1: "Afghanistan",
name2: "Afghanistan"
},
{
name: "Åland Islands",
name1: "Åland Islands",
name2: "Åland Islands"
}
]
我正在嘗試複製 name 欄位並在同一個物件中創建新欄位,例如:name1、name2。這裡有一個可以運行的專案 https://stackblitz.com/edit/angular-8bzcdp,有人可以幫忙嗎?
答案#1
你可以將你的方法更改為:
getRecords() {
return this.http.get('https://restcountries.eu/rest/v2/all').pipe(
map((res: any[]) => {
const data = res.map(obj => ({
name: obj.name,
name1: obj.name,
name2: obj.name
}));
return data;
})
);
}
在結果響應陣列(res[])上,我們根據你的標準將每個元素映射到一個 JSON 對象,並返回新創建的 JSON 對象。
答案#2
你可以在訂閱後修改你的回應
this.service.getRecords().subscribe(res => {
console.log(res);
console.log(res.reduce((a, c) => Object.assign(a, c), {}));
});
詳情請訪問更新的 StackBlitz 連結
https://stackblitz.com/edit/angular-nwwef1?file=src/app/app.component.ts
