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

JS定义含对象数组的对象时报missing ]语法错误原因求解

报错原因分析

你这段代码报错的核心是混淆了对象字面量和数组的语法规则,触发了JavaScript的计算属性名语法解析逻辑:

  • 当你在外层写{}的时候,JS会把这部分解析为对象字面量,对象字面量要求内部是键: 值的结构
  • 你写的{[这个连续符号,会被JS识别为计算属性名的语法:计算属性名的规则是[表达式]: 值,也就是说JS会认为你接下来要写的是属性名的表达式,表达式结束后需要跟]然后加冒号和属性值
  • 但你写的[后面放了两个对象组成的数组结构,全程没有出现闭合]之后的冒号和值,所以JS解析到最后找不到匹配的]以及后续的属性值定义,就抛出了SyntaxError: missing ] in computed property name的错误

移除外层花括号正常运行的原因

当你去掉外层的{}后,代码变成标准的数组定义语法,完全符合JS语法规则,所以可以正常运行:

const example2 = [
  {
    'title': 'Hello World',
    'Author': 'John Doe',
  },
  {
    'title': 'Hello World2',
    'Author': 'John Doe',
  },
];

外层需要保留对象的正确写法

如果你的需求是把这个数组作为对象的属性值,可以按如下方式修改:

const example2 = {
  // 显式声明属性名,后面跟数组值
  articleList: [
    {
      'title': 'Hello World',
      'Author': 'John Doe',
    },
    {
      'title': 'Hello World2',
      'Author': 'John Doe',
    },
  ]
};

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.09.29 16:54:00