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

JavaScript对象数组中能否使用方括号[]作为对象键名?

JavaScript对象键名使用方括号的正确方式

当然可以在JavaScript对象的键名中使用方括号!你遇到报错的原因是语法写错了,不是方括号本身不能用。咱们来拆解问题并给出正确的实现方式:

你的代码报错的核心原因

你写的这段代码有两个明显的语法错误:

var objectArray ={ address[address_number] = "text" }
  1. 对象字面量的键值对必须用**冒号:**分隔,而不是等号=;
  2. 包含方括号这类特殊字符的键名,要么用引号包裹,要么用ES6的计算属性语法,否则JS解析器会把方括号当成表达式解析,而你这里的address[address_number]如果不是预先定义的变量,就会直接触发引用错误。

正确的实现方式

根据你的需求,分两种场景给出写法:

场景1:键名是固定的字符串(比如address[address_number])

这种情况只需要用单引号或双引号把键名包裹起来,同时把等号改成冒号即可:

// 创建对象(注意你之前命名的objectArray其实是对象,不是数组)
var myObject = {
  "address[address_number]": "text"
};

// 访问这个键值对的时候,也要用括号加引号的方式
console.log(myObject["address[address_number]"]); // 输出:text

场景2:键名是动态的(比如address_number是一个变量)

如果你想让方括号里的内容是动态变量,可以用ES6引入的计算属性名语法,用反引号包裹模板字符串:

// 假设这是你的动态变量
const address_number = "101";

// 创建带动态键名的对象
var myObject = {
  [`address[${address_number}]`]: "text"
};

// 访问方式
console.log(myObject[`address[${address_number}]`]); // 输出:text

额外提醒:对象和数组的区别

你代码里的objectArray命名有点误导——它是用{}定义的普通对象,而数组是用[]定义的。如果你的需求是创建对象数组(数组里包含多个对象),写法应该是这样:

var objectArray = [
  { "address[address_number]": "text" },
  { "address[address_number]": "another text" }
];

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.05.22 07:48:38