为了账号安全,请及时绑定邮箱和手机立即绑定

我不知道在这种情况下如何使用地图

我不知道在这种情况下如何使用地图

肥皂起泡泡 2021-12-23 16:13:31
我将这个 JSON 的内容写入数组“heroes”,但我不知道如何获取“damage”、“basicAttack.category”和“specialAttack.category”进行映射。我试图解决这个问题,但不幸的是我不知道如何解决。{    "id": 20,    "name": "Warrior",    "skills": [        {            "id": 1,            "basicAttack": {                "id": 2,                "name": "Hit1",                "category": "weakAttack"            },            "specialAttack": {                "id": 16,                "name": "Special1",                "category": "spellAttack"            },            "damage": 200        },        {            "id": 2,            "basicAttack": {                "id": 3,                "name": "Hit2",                "category": "rangeAttack"            },            "specialAttack": {                "id": 17,                "name": "Special2",                "category": "fightAttack"            },            "damage": 100        }    ]}这是我的映射方式以及我想要获取的数据const item = this.state.heroes.skills.map(item => {    /*i dont have idea how map        <p>{item.damage}</p>        <p>{item.specialAttack.cathegory} + {item.basicAttack.category}</p>     */})
查看完整描述

3 回答

?
慕神8447489

TA贡献1780条经验 获得超1个赞

只是地图上的heroes.skills,你会发现结果如何访问值


var heroes ={

  "id": 20,

  "name": "Warrior",

  "skills": [

      {

          "id": 1,

          "basicAttack": {

              "id": 2,

              "name": "Hit1",

              "category": "weakAttack"

          },

          "specialAttack": {

              "id": 16,

              "name": "Special1",

              "category": "spellAttack"

          },

          "damage": 200

      },

      {

          "id": 2,

          "basicAttack": {

              "id": 3,

              "name": "Hit2",

              "category": "rangeAttack"

          },

          "specialAttack": {

              "id": 17,

              "name": "Special2",

              "category": "fightAttack"

          },

          "damage": 100

      }

  ]

}


heroes.skills.map(hero=>{

  console.log("damage...........",hero.damage)

  console.log("basicAttack.category.........",hero.basicAttack.category)

  console.log("specialAttack.category........",hero.specialAttack.category)

})

如果你想渲染,那么你必须返回它然后渲染


const heroesDiv = this.state.heroes.skills.map((hero) => (

  <>

    <p>{item.damage}</p>

    <p>{item.specialAttack.category} + {item.basicAttack.category}</p>

  </>

))


查看完整回答
反对 回复 2021-12-23
?
白衣非少年

TA贡献1155条经验 获得超0个赞

this.state.heroes.skills.map((item) => {

  return `<div><p>${item.damage}</p><p>${item.specialAttack.category} ${item.basicAttack.category}</p></div>`

})


查看完整回答
反对 回复 2021-12-23
?
拉风的咖菲猫

TA贡献1995条经验 获得超2个赞

let data = {

  "id": 20,

  "name": "Warrior",

  "skills": [

      {

          "id": 1,

          "basicAttack": {

              "id": 2,

              "name": "Hit1",

              "category": "weakAttack"

          },

          "specialAttack": {

              "id": 16,

              "name": "Special1",

              "category": "spellAttack"

          },

          "damage": 200

      },

      {

          "id": 2,

          "basicAttack": {

              "id": 3,

              "name": "Hit2",

              "category": "rangeAttack"

          },

          "specialAttack": {

              "id": 17,

              "name": "Special2",

              "category": "fightAttack"

          },

          "damage": 100

      }

  ]

}

这是你可以映射的方式


return (

 <div>

  {data.skills.map(item=>

  <div key={item.id}>

   <h3>{item.id}: {item.basicAttack.name}-{item.basicAttack.category}, {item.specialAttack.name}-{item.specialAttack.category}</h3>

  </div>)}

 </div>

)


查看完整回答
反对 回复 2021-12-23
  • 3 回答
  • 0 关注
  • 163 浏览
慕课专栏
更多

添加回答

举报

0/150
提交
取消
微信客服

购课补贴
联系客服咨询优惠详情

帮助反馈 APP下载

慕课网APP
您的移动学习伙伴

公众号

扫描二维码
关注慕课网微信公众号