首页 > 解决方案 > 如何使用 rxJS 根据当前属性向数组中的所有对象添加属性

问题描述

例如,我返回一个具有多个属性的对象数组 -_dead : true如果deathDate在当前对象上填充了一个新属性,我想添加一个新属性。我该怎么做呢?我是 RxJs 和 ES6 的新手。

    return this.myAPI.get(`/players`).pipe(
      map(player => ({
          ...player,
          _dead: player.deathDate,
        }),
      )
    );

标签: javascriptrxjs

解决方案


我认为您可能会将 RxJS 的 map 运算符与该Array.map()方法混淆。

根据 RxJS文档map()操作符的目的是

对源中的每个值应用投影。

如果您希望向对象数组添加新属性,则需要使用Array.map()来遍历数组。

这就是我们可以修改您的代码以达到预期结果的方式。

return this.myAPI.get(`/players`).pipe(
  map(players => ({
      const res = players.map(player => ({
        ...player,
        _dead: !!player.deathDate,
      });

      return res;
    }),
  )
);

推荐阅读