对象数组是元素为对象的普通数组,JavaScript常用字面量[]配合{}初始化,Python则用列表存储类实例;需注意元素独立性、属性访问方式及避免new Array(数字)误用。

对象数组就是元素为对象的数组,定义和初始化的关键在于:先有对象,再把对象放进数组里。它不是一种特殊数组类型,而是普通数组的一种常见用法。
JavaScript 中的对象数组定义与赋值
最常用、最推荐的方式是使用数组字面量 [],配合对象字面量 {} 一起写:
- 直接初始化(推荐):
const users = [
{ id: 1, name: "张三", age: 25 },
{ id: 2, name: "李四", age: 30 },
{ id: 3, name: "王五", age: 28 }
]; - 先声明空数组,再逐个 push 对象:
const users = [];
users.push({ id: 1, name: "张三", age: 25 });
users.push({ id: 2, name: "李四", age: 30 }); - 用 new Array() 创建(不推荐,易混淆):
const users = new Array(
{ id: 1, name: "张三", age: 25 },
{ id: 2, name: "李四", age: 30 }
);
Python 中的对象数组(即对象列表)定义与赋值
Python 没有“对象数组”这个独立类型,但列表(list)天然支持存储任意对象,包括自定义类实例:
- 先定义类(比如 Student):
class Student:
def __init__(self, name, age):
self.name = name
self.age = age - 创建对象并放入列表:
students = [
Student("Alice", 20),
Student("Bob", 22),
Student("Charlie", 21)
] - 也可先建空列表再 append:
students = []
students.append(Student("Alice", 20))
关键注意事项
- 对象数组里的每个元素都是独立对象,修改某个对象属性不会影响其他元素
- 数组长度由元素个数决定,和对象内部结构无关
- 访问对象属性要两步走:先用索引取数组元素,再用点号或方括号取属性,例如 users[0].name 或 students[1].age
- 避免用 new Array(3) 这种只传数字的方式初始化——它创建的是含 3 个 undefined 的空位数组,不是含 3 个对象的数组
简单验证方式
定义完后,快速检查是否成功:
- 打印数组长度:console.log(users.length)(JS)或 print(len(students))(Python)
- 查看第一个对象内容:console.log(users[0]) 或 print(students[0].name)
- 确认类型(JS):Array.isArray(users) && typeof users[0] === 'object'


















