JavaScript 数组与对象

数组的基本操作

1. 创建数组

数组是存储一组有序数据的容器。可以用 [] 语法创建数组:

1
2
let fruits = ["apple", "banana", "mango"];
let numbers = [1, 2, 3, 4, 5];
  • 数组可以包含任意类型的数据,甚至可以混合数据类型:
1
let mixedArray = [1, "hello", true, { name: "Alice" }];

2. 访问数组元素

数组的索引从 0 开始,可以通过索引访问和修改数组元素:

1
2
3
4
5
let fruits = ["apple", "banana", "mango"];
console.log(fruits[0]); // 输出 "apple"

fruits[1] = "orange";
console.log(fruits); // 输出 ["apple", "orange", "mango"]

3. 数组的常用方法

3.1 添加和删除元素

  • push():在数组末尾添加元素,返回新长度。
  • pop():删除并返回数组最后一个元素。
  • unshift():在数组开头添加元素,返回新长度。
  • shift():删除并返回数组第一个元素。
1
2
3
4
5
let numbers = [1, 2, 3];
numbers.push(4); // numbers = [1, 2, 3, 4]
numbers.pop(); // 返回 4,numbers = [1, 2, 3]
numbers.unshift(0); // numbers = [0, 1, 2, 3]
numbers.shift(); // 返回 0,numbers = [1, 2, 3]

3.2 查找和操作

  • indexOf():返回元素首次出现的索引,找不到时返回 -1。
  • includes():检查数组是否包含某个元素,返回布尔值。
1
2
3
let fruits = ["apple", "banana", "mango"];
fruits.indexOf("banana"); // 返回 1
fruits.includes("grape"); // 返回 false
  • slice():返回指定开始到结束索引之间的数组副本,不会修改原数组。
  • splice():在指定位置删除或添加元素,会修改原数组。
1
2
3
4
let numbers = [1, 2, 3, 4, 5];
let sliced = numbers.slice(1, 3); // [2, 3]
numbers.splice(1, 2, "a", "b"); // 删除从索引 1 开始的 2 个元素,然后添加 "a" 和 "b"
console.log(numbers); // [1, "a", "b", 4, 5]

3.3 数组的遍历

  • forEach():遍历数组的每个元素并执行回调函数。
1
2
3
4
let fruits = ["apple", "banana", "mango"];
fruits.forEach((fruit, index) => {
console.log(`水果: ${fruit}, 索引: ${index}`);
});
  • map():创建一个新数组,结果为每个元素经过回调函数处理后的值。
1
2
let numbers = [1, 2, 3];
let doubled = numbers.map(num => num * 2); // [2, 4, 6]
  • filter():创建一个新数组,包含通过回调函数测试的所有元素。
1
2
let numbers = [1, 2, 3, 4, 5];
let evens = numbers.filter(num => num % 2 === 0); // [2, 4]
  • reduce():对数组中的所有元素执行回调函数,将其累计为单一值。
1
2
let numbers = [1, 2, 3, 4];
let sum = numbers.reduce((acc, curr) => acc + curr, 0); // 10

对象的基本操作

1. 创建对象

对象是键值对的集合,用于描述具有特征的实体。可以使用 {} 来创建对象:

1
2
3
4
5
let person = {
name: "Alice",
age: 25,
city: "New York"
};

2. 访问和修改对象属性

可以使用 点表示法方括号表示法 访问和修改对象属性:

1
2
3
4
5
6
7
8
let person = {
name: "Alice",
age: 25
};

console.log(person.name); // "Alice"
person.age = 30; // 修改 age 属性
console.log(person["age"]); // 30

3. 动态添加和删除属性

可以随时为对象添加新的属性,或用 delete 删除某个属性:

1
2
3
person.country = "USA";     // 添加新属性
delete person.city; // 删除 city 属性
console.log(person);

4. 遍历对象属性

可以用 for...in 循环遍历对象所有的属性:

1
2
3
for (let key in person) {
console.log(`${key}: ${person[key]}`);
}

5. 常用对象方法

  • Object.keys():返回对象的所有属性名(键),组成数组。
  • Object.values():返回对象的所有属性值,组成数组。
  • Object.entries():返回对象的键值对数组。
1
2
3
4
5
6
7
8
let person = {
name: "Alice",
age: 25
};

console.log(Object.keys(person)); // ["name", "age"]
console.log(Object.values(person)); // ["Alice", 25]
console.log(Object.entries(person)); // [["name", "Alice"], ["age", 25]]

JavaScript 数组与对象
https://blog.pangcy.cn/2020/05/03/前端编程相关/JavaScript/JavaScript 数组与对象/
作者
子洋
发布于
2020年5月3日
许可协议