首页 > 解决方案 > 对象上值的访问索引

问题描述

我的问题:我想从我的对象键值中随机访问一个索引。

我正在尝试创建一个基于文本的冒险游戏。我有一个元素,可以根据您所在的“任务”显示不同的文本和按钮选项。我希望它从我的任务对象中随机选择一个任务。

例如:我将有一个带有任务名称的键,例如:“Dragon Slayer”,然后是一个名为 text 的键,它将有一个字符串值:“Do you want to kill a dragon”

我希望用一个对象来实现这一点......

const quest = {
  dragonFight: {
    text: "you are fighting dragon",
    button1: "fight",
    button2: "flee"
  } //etc for others.
}

在尝试随机获取其中一个值时,我意识到我无法像数组索引那样访问这些值。我以为我可以使用类似的东西..

var mainQuest = Math.floor(Math.random()* Quest[0].length);

displayText = Quest[mainQuest[mainQuest].title]

标签: javascriptjavascript-objects

解决方案


安德烈亚斯有正确答案,实现基本上是:

let keys=Object.keys(quest)
let index=Math.floor(Math.random()*keys.length)
randomQuest=quest[keys[index]]

并且randomQuest将是随机选择的任务:D


推荐阅读