第4章: 数组和对象

数组 (Array)

数组用于存储多个值,这些值可以是任何类型。

创建数组

// 创建空数组
let arr1 = [];
let arr2 = new Array();

// 创建包含元素的数组
let fruits = ["苹果", "香蕉", "橙子"];
let numbers = [1, 2, 3, 4, 5];
let mixed = [1, "hello", true, null];

访问数组元素

let fruits = ["苹果", "香蕉", "橙子"];
console.log(fruits[0]); // 输出: 苹果
console.log(fruits[1]); // 输出: 香蕉
console.log(fruits[2]); // 输出: 橙子

常用数组方法

let fruits = ["苹果", "香蕉", "橙子"];

// 添加元素
fruits.push("葡萄"); // 在末尾添加
fruits.unshift("草莓"); // 在开头添加

// 删除元素
fruits.pop(); // 删除末尾元素
fruits.shift(); // 删除开头元素

// 数组长度
console.log(fruits.length); // 输出数组长度

// 查找元素索引
console.log(fruits.indexOf("香蕉")); // 输出: 1

// 遍历数组
fruits.forEach(function(item, index) {
    console.log(index + ": " + item);
});

对象 (Object)

对象是键值对的集合,用于存储相关数据和方法。

创建对象

// 创建空对象
let obj1 = {};
let obj2 = new Object();

// 创建包含属性的对象
let person = {
    name: "张三",
    age: 25,
    city: "北京"
};

访问对象属性

let person = {
    name: "张三",
    age: 25,
    city: "北京"
};

// 点表示法
console.log(person.name); // 输出: 张三
console.log(person.age);  // 输出: 25

// 方括号表示法
console.log(person["city"]); // 输出: 北京

修改和添加属性

let person = {
    name: "张三",
    age: 25
};

// 修改属性
person.age = 26;
person["name"] = "李四";

// 添加新属性
person.city = "上海";
person.email = "test@example.com";

// 删除属性
delete person.email;

对象方法

let person = {
    name: "张三",
    age: 25,
    greet: function() {
        return "你好,我是" + this.name;
    },
    celebrateBirthday: function() {
        this.age++;
        return this.age;
    }
};

console.log(person.greet()); // 输出: 你好,我是张三
console.log(person.celebrateBirthday()); // 输出: 26

数组 vs 对象