You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何获取嵌套数组中内部数组的名称?猜字小游戏开发问题

解决方法

你当前的问题核心是外层数组仅存储了子数组的元素集合,没有保留类别名称与子数组的映射关系。要获取子数组名称,需要调整数据结构,把类别名称和对应子数组绑定在一起,而非直接将子数组塞进外层数组。

以下是两种可行的实现方案:

方案一:使用对象存储类别映射

这是最直观的方式,用对象的键作为类别名称,值对应子数组:

// 定义各类别子数组
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

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.01 07:25:57