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

如何在JavaScript中定义对象的数组的数组?以下代码写法是否正确?

如何在JavaScript中定义对象的数组的数组?顺便帮你看代码问题

嘿,我来帮你理清楚这个问题~首先得先纠正你给出的代码里的错误,再一步步说正确的写法:


你的代码哪里错了?

你写的这段代码是语法错误的:

var A1 = [ B1 : [ { Text: 'Home', name: "i do not know" }, { Text: 'Taj', name: "you may know" } ], B2 : [ { Text: 'Homeone', name: "i do not knows" }, { Text: 'Tasj', name: "you may knows" } ] ]

问题出在:你用了数组的方括号[],但里面却写了B1: ...这种键值对——数组是靠索引排序的集合,只能用逗号分隔元素,不能用键值对;而键值对应是对象的语法,得用大括号{}来包裹才行。


正确的写法分两种场景(看你实际需求)

场景1:这应该是你想要的——属性为对象数组的对象

看起来你是想创建一个叫A1的对象,里面有B1、B2两个“分组”,每个分组里是一堆对象组成的数组。那正确的写法应该是这样:

var A1 = {
  B1: [
    { Text: 'Home', name: "i do not know" },
    { Text: 'Taj', name: "you may know" }
  ],
  B2: [
    { Text: 'Homeone', name: "i do not knows" },
    { Text: 'Tasj', name: "you may knows" }
  ]
};

用起来也很方便:比如想拿B1里第一个对象的Text,直接写A1.B1[0].Text就能得到'Home';想取B2里第二个对象的name,就写A1.B2[1].name。

场景2:真正的「对象的数组的数组」(纯数组嵌套)

如果你确实需要的是“数组里装数组,数组里再装对象”的纯嵌套数组结构,那写法是这样的:

var A1 = [
  [
    { Text: 'Home', name: "i do not know" },
    { Text: 'Taj', name: "you may know" }
  ],
  [
    { Text: 'Homeone', name: "i do not knows" },
    { Text: 'Tasj', name: "you may knows" }
  ]
];

这种结构下,访问元素就得靠索引了:比如想拿第一个子数组里的第一个对象的Text,写A1[0][0].Text就行。


小提醒

  • 对象的属性名如果是像B1、B2这种合法的标识符,不用加引号;要是属性名有空格、连字符这类特殊字符,就得用引号包起来,比如'B-1'。
  • 数组是有序的,适合按顺序遍历;对象是按属性名访问的,适合做分组归类,你可以根据自己的实际需求选对应的结构~

内容的提问来源于stack exchange,提问作者giveJob

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.05.22 08:19:50