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

时间:2017-06-14 09:57:32

标签: javascript reactjs object

我是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而不是手动签名。我可以这样做吗?

1 个答案:

答案 0 :(得分:0)

解决方案是在没有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(),那么您也可以将其移动到地图中,并进一步减少重复次数。