我可以通过访问该对象中的其他值来设置对象的值吗?



我是 React 的新手.js,我正在设计一个小游戏。

当我设置life值时,我想使用 job 的值,我可以在 React.js 中执行此操作吗?

这是我代码的一部分:

this.setState({
            players:[
                {
                    id:uuid.v4(),
                    name: "A",
                    job: "Wizard",
                    life: this.getRandHealth("Wizard")
                }, {
                    id:uuid.v4(),
                    name: "B",
                    job: "Witch",
                    life: this.getRandHealth("Witch")
                }]});

我想直接访问job而不是手动签名。我能做到吗?

一种解决方案是定义不带life的玩家列表,然后使用.map()添加它:

var list = [{
  id: uuid.v4(),
  name: "A",
  job: "Wizard",
}, {
  id: uuid.v4(),
  name: "B",
  job: "Witch",
}];
this.setState({
  players: list.map(function(obj) {
    return {
      id: obj.id,
      name: obj.name,
      job: obj.job,
      life: this.getRandHealth(obj.job)
    };
  }, this);
});

如果 id 始终uuid.v4()那么您也可以将其移动到地图中并进一步减少重复。

最新更新