JavaScript 数组复习笔记

JavaScript 数组复习笔记

一、数组的基本概念

定义

  • 数组是一种数据结构,用于存储一组有序的数据。在 JavaScript 中,数组可以存储任何类型的数据,包括数字、字符串、对象、函数等。

创建数组的方式

1. 数组字面量
  • 语法:使用方括号 [] 来创建一个数组,在方括号内可以列出数组的元素。
  • 实例
let fruits = ['apple', 'banana', 'orange'];
console.log(fruits); // 输出:['apple', 'banana', 'orange']
2. Array 构造函数
  • 语法:使用 new Array() 构造函数来创建一个数组,可以传入一个或多个参数来指定数组的元素。
  • 实例
let numbers = new Array(1, 2, 3);
console.log(numbers); // 输出:[1, 2, 3]

二、数组的属性和方法

1. 数组的长度

  • 使用 length 属性可以获取数组的长度,即数组中元素的个数。
  • 实例
let fruits = ['apple', 'banana', 'orange'];
console.log(fruits.length); // 输出:3

2. 访问数组元素

  • 可以使用索引来访问数组中的元素,索引从 0 开始。
  • 实例
let fruits = ['apple', 'banana', 'orange'];
console.log(fruits[0]); // 输出:apple
console.log(fruits[1]); // 输出:banana
console.log(fruits[2]); // 输出:orange

3. 修改数组元素

  • 可以使用索引来修改数组中的元素。
  • 实例
let fruits = ['apple', 'banana', 'orange'];
fruits[1] = 'grape';
console.log(fruits); // 输出:['apple', 'grape', 'orange']

4. 添加数组元素

  • 可以使用 push()unshift()splice() 等方法来添加数组元素。
  • 实例
let fruits = ['apple', 'banana', 'orange'];
fruits.push('grape'); // 在数组末尾添加元素
console.log(fruits); // 输出:['apple', 'banana', 'orange', 'grape']
fruits.unshift('pear'); // 在数组开头添加元素
console.log(fruits); // 输出:['pear', 'apple', 'banana', 'orange', 'grape']
fruits.splice(2, 0, 'kiwi'); // 在指定位置添加元素
console.log(fruits); // 输出:['pear', 'apple', 'kiwi', 'banana', 'orange', 'grape']

5. 删除数组元素

  • 可以使用 pop()shift()splice() 等方法来删除数组元素。
  • 实例
let fruits = ['pear', 'apple', 'kiwi', 'banana', 'orange', 'grape'];
fruits.pop(); // 删除数组末尾的元素
console.log(fruits); // 输出:['pear', 'apple', 'kiwi', 'banana', 'orange']
fruits.shift(); // 删除数组开头的元素
console.log(fruits); // 输出:['apple', 'kiwi', 'banana', 'orange']
fruits.splice(1, 1); // 删除指定位置的元素
console.log(fruits); // 输出:['apple', 'banana', 'orange']

6. 遍历数组

  • 可以使用 for 循环、for...of 循环、forEach() 方法等方式来遍历数组。
  • 实例
let fruits = ['apple', 'banana', 'orange'];
// 使用 for 循环遍历数组
for (let i = 0; i < fruits.length; i++) {
    console.log(fruits[i]);
}
// 使用 for...of 循环遍历数组
for (let fruit of fruits) {
    console.log(fruit);
}
// 使用 forEach() 方法遍历数组
fruits.forEach(function(fruit) {
    console.log(fruit);
});

7. 数组的排序和反转

  • 可以使用 sort() 方法对数组进行排序,使用 reverse() 方法对数组进行反转。
  • 实例
let numbers = [3, 1, 4, 1, 5, 9, 2, 6, 5, 3, 5];
numbers.sort();
console.log(numbers); // 输出:[1, 1, 2, 3, 3, 4, 5, 5, 5, 6, 9]
numbers.reverse();
console.log(numbers); // 输出:[9, 6, 5, 5, 5, 4, 3, 3, 2, 1, 1]

8. 数组的连接和切片

  • 可以使用 concat() 方法连接两个或多个数组,使用 slice() 方法从数组中提取一部分元素。
  • 实例
let fruits1 = ['apple', 'banana', 'orange'];
let fruits2 = ['grape', 'kiwi', 'pear'];
let combinedFruits = fruits1.concat(fruits2);
console.log(combinedFruits); // 输出:['apple', 'banana', 'orange', 'grape', 'kiwi', 'pear']
let slicedFruits = combinedFruits.slice(2, 5);
console.log(slicedFruits); // 输出:['orange', 'grape', 'kiwi']

三、高级数组操作

1. 数组的映射

  • 可以使用 map() 方法对数组中的每个元素进行操作,并返回一个新的数组。
  • 实例
let numbers = [1, 2, 3, 4, 5];
let doubledNumbers = numbers.map(function(number) {
    return number * 2;
});
console.log(doubledNumbers); // 输出:[2, 4, 6, 8, 10]

2. 数组的过滤

  • 可以使用 filter() 方法对数组中的元素进行筛选,并返回一个新的数组。
  • 实例
let numbers = [1, 2, 3, 4, 5];
let evenNumbers = numbers.filter(function(number) {
    return number % 2 === 0;
});
console.log(evenNumbers); // 输出:[2, 4]

3. 数组的归约

  • 可以使用 reduce() 方法对数组中的元素进行归约操作,将数组中的元素归约为一个单一的值。
  • 实例
let numbers = [1, 2, 3, 4, 5];
let sum = numbers.reduce(function(accumulator, currentValue) {
    return accumulator + currentValue;
}, 0);
console.log(sum); // 输出:15

4. 数组的扁平化

  • 可以使用 flat() 方法将多维数组扁平化,即将嵌套的数组展开为一维数组。
  • 实例
let nestedArray = [1, [2, [3, 4], 5], 6];
let flattenedArray = nestedArray.flat();
console.log(flattenedArray); // 输出:[1, 2, [3, 4], 5, 6]
flattenedArray = nestedArray.flat(2);
console.log(flattenedArray); // 输出:[1, 2, 3, 4, 5, 6]

通过对 JavaScript 数组的学习和掌握,可以更加高效地处理数据集合,实现各种复杂的算法和功能。同时,需要注意数组的性能和内存使用情况,避免创建过大的数组和进行过多的数组操作,以提高程序的性能和可维护性。

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值