首页 > 解决方案 > 我如何解析这个输出?

问题描述

如果“已实现:”为真,我试图仅输出“名称:”元素。这是使用 SteamAPI。

它基本上是获取数据并将其存储到“成就”变量中。

steam.getUserAchievements(id, config.app).then(achievements => {

我尝试做一些事情,例如成就.名称,但没有奏效。

有任何想法吗?

PlayerAchievements {
  steamID: '76561198170684483',
  gameName: 'Deadside',
  achievements: [
    Achievement {
      api: 'DS_FirstStep',
      name: 'First step',
      description: 'Make you first step in game',
      achieved: true,
      unlockTime: 1598449807
    },
    Achievement {
      api: 'DS_Weap_FirstBlood',
      name: 'First blood',
      description: 'Kill an enemy',
      achieved: true,
      unlockTime: 1598451567
    },
    Achievement {
      api: 'DS_Weap_SteelArms',
      name: 'Cold Steel',
      description: 'Kill 10 AI bots with melee weapons',
      achieved: false,
      unlockTime: 0
    },
    Achievement {
      api: 'DS_Weap_Gun',
      name: 'Gunslinger',
      description: 'Kill 100 AI bots with Pistols',
      achieved: false,
      unlockTime: 0
    },
    Achievement {
      api: 'DS_Weap_SMG',
      name: 'Need for Lead',
      description: 'Kill 100 AI bots with SMGs',
      achieved: false,
      unlockTime: 0
    },
    Achievement {
      api: 'DS_Weap_AR',
      name: 'Lead Storm',
      description: 'Kill 100 AI bots with Assault Rifles',
      achieved: true,
      unlockTime: 1598737115
    },
    Achievement {
      api: 'DS_Weap_ShotGun',
      name: 'Son of a Shotgun',
      description: 'Kill 100 AI bots with Shotguns',
      achieved: true,
      unlockTime: 1598755630
    },
    Achievement {
      api: 'DS_Weap_Snip',
      name: 'Rifleman',
      description: 'Kill 100 AI bots with Rifles',
      achieved: false,
      unlockTime: 0
    },
    Achievement {
      api: 'DS_Weap_Gren',
      name: 'Hottest Potato',
      description: 'Kill 10 AI bots with Grenades',
      achieved: false,
      unlockTime: 0
    },
    Achievement {
      api: 'DS_Weap_Headshot',
      name: 'Headshot!',
      description: 'Kill 50 AI bots with headshot',
      achieved: true,
      unlockTime: 1598801600
    },
    Achievement {
      api: 'DS_Weap_LastBullet',
      name: 'Last bullet',
      description: 'Kill 10 AI bots with the last bullet in a clip',
      achieved: true,
      unlockTime: 1598826382
    },
    Achievement {
      api: 'DS_Weap_KillPlayer',
      name: 'There can only One',
      description: 'Kill 10 players',
      achieved: false,
      unlockTime: 0
    },
    Achievement {
      api: 'DS_Weap_AllWeapons',
      name: 'Full Arsenal',
      description: 'Kill one AI bot with each weapon',
      achieved: false,
      unlockTime: 0
    },
    Achievement {
      api: 'DS_MF_Any',
      name: 'Modder',
      description: 'Put any mod onto a weapon',
      achieved: true,
      unlockTime: 1598456376
    },
    Achievement {
      api: 'DS_Craft_Any',
      name: 'Mr. Fix-It',
      description: 'Craft any item',
      achieved: true,
      unlockTime: 1598450912
    },
    Achievement {
      api: 'DS_Craft_Base',
      name: "A man's home is his castle",
      description: 'Build your first base',
      achieved: true,
      unlockTime: 1598737891
    },
    Achievement {
      api: 'DS_Craft_BreakUp',
      name: 'Field Doctor',
      description: 'Tear any item to rags',
      achieved: true,
      unlockTime: 1598450049
    },
    Achievement {
      api: 'DS_Craft_Lumberjack',
      name: 'Lumberjack',
      description: 'Chop 100 logs',
      achieved: false,
      unlockTime: 0
    },
    Achievement {
      api: 'DS_Trade_Any',
      name: 'Trader',
      description: 'Buy or sell 100 items',
      achieved: true,
      unlockTime: 1598458913
    },
    Achievement {
      api: 'DS_FoodWater_Any',
      name: 'Gourmet',
      description: 'Consume all kinds of food and drinks',
      achieved: false,
      unlockTime: 0
    }
  ]
}

标签: parsingdiscord.jssteam

解决方案


从您提供的代码中,我们可以看到该类有一个包含一个类PlayerAchievements的数组。achievementsAchievement

您可以执行以下操作以获得成就名称 -

steam.getUserAchievements(id, config.app).then(achievements => {
console.log(achievements.achievements[0].name)
})

它将记录第一个成就名称,您也可以访问其他成就,因为它是一个数组。


推荐阅读