如何将对象列表从 HTTP API 映射到字符串列表?

How do I map a list of objects from an HTTP API to a list of strings?

我正在尝试使用下面给出的合并运算符。我只想在登录前输入 'Mr' 但出现错误,非常感谢您的帮助,谢谢

  let data=this.http.get('https://api.github.com/users');
  let output=data.pipe(map(data=>{'Mr, '+data.login}));
            output.subscribe(data=>{
  console.log(data);
})

您正确使用了运算符。如果您想向使用 api.

获取的数据添加一些逻辑,然后使用 pipe 和 map 是正确的

当你使用箭头功能时,如果你使用块,那么你必须添加return字样。 如果你只有一个语句,你可以直接写那个。

因此,只需将您的代码替换为以下几行:

 let data=this.http.get('https://api.github.com/users').pipe(map(data=>{
    data.forEach((ele)=>ele.login = 'Mr ,'+ele.login};
     return data
  };
         data.subscribe(data=>{
  console.log(data);
})

在我的评论中,API returns 一组用户。因此,您需要在 rxjs map 中使用 JavaScript 数组 map 运算符将每个单独的用户转换为所需的字符串:

let data = this.http.get<any[]>('https://api.github.com/users');
let output = data.pipe(map(users => users.map(user => 'Mr, ' + user.login)));

output.subscribe(data => console.log(data));

这里的工作示例:https://stackblitz.com/edit/so-map-github-users?file=src%2Fapp%2Fapp.component.ts