如何获取嵌套数组中内部数组的名称?猜字小游戏开发问题
解决方法
你当前的问题核心是外层数组仅存储了子数组的元素集合,没有保留类别名称与子数组的映射关系。要获取子数组名称,需要调整数据结构,把类别名称和对应子数组绑定在一起,而非直接将子数组塞进外层数组。
以下是两种可行的实现方案:
方案一:使用对象存储类别映射
这是最直观的方式,用对象的键作为类别名称,值对应子数组:
// 定义各类别子数组 const Animals = ["Cat", "Dog", "Elephant"]; const People = ["Doctor", "Teacher", "Engineer"]; // 用对象关联类别名称与子数组 const PlayingCategories = { Animals: Animals, People: People }; function playGame() { // 获取所有类别名称的数组 const categoryNames = Object.keys(PlayingCategories); // 生成随机索引选中一个类别 const randomName = categoryNames[Math.floor(Math.random() * categoryNames.length)]; // 获取对应子数组(按需使用) const targetArray = PlayingCategories[randomName]; // 此时alert能正确显示类别名称 alert(`当前类别:${randomName}`); }
方案二:用数组包裹类别对象
如果需要保留数组的有序性,可把每个类别包装成包含名称和子数组的对象,再放进外层数组:
const PlayingArrays = [ { name: "Animals", items: ["Cat", "Dog", "Elephant"] }, { name: "People", items: ["Doctor", "Teacher", "Engineer"] } ]; function playGame() { const randomIndex = Math.floor(Math.random() * PlayingArrays.length); const selectedCategory = PlayingArrays[randomIndex]; // 直接通过name属性获取类别名称 alert(`当前类别:${selectedCategory.name}`); // 子数组可通过selectedCategory.items获取 }
两种方案都能解决你无法获取子数组名称的问题,可根据后续游戏逻辑的需求选择适配的结构。
内容的提问来源于stack exchange,提问作者That New Coder
相关产品推荐
相关产品推荐

