数组

37 阅读4分钟

1、声明数组

使用数组字面量

const arr1 = [];
const arr2 = [1, 2, 3];
const arr3 = ["apple", "banana", "cherry"];
const arr4 = [1, "apple", true, null]; // 可以包含不同类型的元素

1.2 使用 Array 构造函数

const arr5 = new Array();
const arr6 = new Array(1, 2, 3);
const arr7 = new Array(3); // 创建一个长度为3的数组,但元素为undefined

2、数组的基本操作

 获取数组长度

const arr = [1, 2, 3];
console.log(arr.length); // 输出 3

访问数组元素

const arr = [1, 2, 3];
console.log(arr[0]); // 输出 1
arr[1] = 4; // 修改数组元素
console.log(arr); // 输出 [1, 4, 3]

添加元素到数组末尾

const arr = [1, 2, 3];
arr.push(4); // 添加元素到末尾
console.log(arr); // 输出 [1, 2, 3, 4]

从数组末尾移除元素

const arr = [1, 2, 3];
const lastElement = arr.pop(); // 移除末尾元素并返回该元素
console.log(arr); // 输出 [1, 2]
console.log(lastElement); // 输出 3

添加元素到数组开头

const arr = [1, 2, 3];
arr.unshift(0); // 添加元素到开头
console.log(arr); // 输出 [0, 1, 2, 3]

从数组开头移除元素

const arr = [0, 1, 2, 3];
const firstElement = arr.shift(); // 移除开头元素并返回该元素
console.log(arr); // 输出 [1, 2, 3]
console.log(firstElement); // 输出 0

删除指定位置的元素

const arr = [0, 1, 2, 3, 4];
const removedElements = arr.splice(2, 1); // 从索引2开始删除1个元素
console.log(arr); // 输出 [0, 1, 3, 4]
console.log(removedElements); // 输出 [2]

在指定位置插入元素

const arr = [0, 1, 3, 4];
arr.splice(2, 0, 2); // 在索引2的位置插入元素2
console.log(arr); // 输出 [0, 1, 2, 3, 4]

合并数组

const arr1 = [1, 2, 3];
const arr2 = [4, 5, 6];
const mergedArr = arr1.concat(arr2); // 合并两个数组
console.log(mergedArr); // 输出 [1, 2, 3, 4, 5, 6]

转换数组

const arr = [1, 2, 3];
const str = arr.toString(); // 转换为字符串
console.log(str); // 输出 "1,2,3"
const joinedStr = arr.join('-'); // 使用指定分隔符转换为字符串
console.log(joinedStr); // 输出 "1-2-3"

3、遍历数组

使用 for 循环

const arr = [1, 2, 3];
for (let i = 0; i < arr.length; i++) {
  console.log(arr[i]);
}

使用 forEach 方法

const arr = [1, 2, 3];
arr.forEach(function(element) {
  console.log(element);
});

4、其他高阶方法

map 方法

map() 方法用于对数组中的每个元素执行某种操作,并返回一个新数组,新数组的每个元素是原数组元素经过操作后的结果。map() 不会修改原数组。

const arr = [1, 2, 3];
const newArr = arr.map(function(element) {
  return element * 2;
});
console.log(newArr); // 输出 [2, 4, 6]

 filter 方法

filter() 方法用于筛选数组中的元素,根据提供的函数返回 truefalse 来决定是否保留某个元素。它返回一个新数组,包含符合条件的元素。filter() 不会修改原数组。

const arr = [1, 2, 3, 4, 5];
const filteredArr = arr.filter(function(element) {
  return element % 2 === 0;
});
console.log(filteredArr); // 输出 [2, 4]

 reduce 方法

reduce() 方法用于将数组中的所有元素归并为一个单一的值。它接收一个回调函数,该回调函数有两个参数:accumulator(累加器)和 currentValue(当前值)。reduce() 会依次处理数组中的每个元素,最终返回一个值。

const arr = [1, 2, 3, 4, 5];
const sum = arr.reduce(function(accumulator, element) {
  return accumulator + element;
}, 0);
console.log(sum); // 输出 15

includes 方法

includes() 方法用于检查数组中是否包含某个值,返回布尔值 truefalse

const arr = [1, 2, 3];
console.log(arr.includes(2)); // 输出 true
console.log(arr.includes(4)); // 输出 false

 indexOf 方法

indexOf() 方法用于查找数组中某个值的索引。如果找到该值,返回其索引;否则返回 -1

const arr = [1, 2, 3];
console.log(arr.indexOf(2)); // 输出 1
console.log(arr.indexOf(4)); // 输出 -1

 lastIndexOf 方法

lastIndexOf() 方法用于从数组的末尾向前查找某个值的索引。如果找到该值,返回其索引;否则返回 -1

const arr = [1, 2, 3, 2];
console.log(arr.lastIndexOf(2)); // 输出 3

 find 方法

find() 方法用于查找数组中第一个满足条件的元素,并返回该元素。如果没有找到,返回 undefined

const arr = [1, 2, 3, 4, 5];
const foundElement = arr.find(function(element) {
  return element > 3;
});
console.log(foundElement); // 输出 4

 findIndex 方法

findIndex() 方法用于查找数组中第一个满足条件的元素的索引。如果没有找到,返回 -1

const arr = [1, 2, 3, 4, 5];
const foundIndex = arr.findIndex(function(element) {
  return element > 3;
});
console.log(foundIndex); // 输出 3

5、数组的拷贝

使用 slice 方法

const arr = [1, 2, 3];
const copiedArr = arr.slice();
console.log(copiedArr); // 输出 [1, 2, 3]

使用扩展运算符

const arr = [1, 2, 3];
const copiedArr = [...arr];
console.log(copiedArr); // 输出 [1, 2, 3]

6、数组的排序

默认排序

.sort()

const arr = [3, 1, 4, 2];
arr.sort();
console.log(arr); // 输出 [1, 2, 3, 4]

自定义排序

const arr = [3, 1, 4, 2];
arr.sort(function(a, b) {
  return a - b;
});
console.log(arr); // 输出 [1, 2, 3, 4]

6、数组的反转

使用 reverse 方法

const arr = [1, 2, 3];
arr.reverse();
console.log(arr); // 输出 [3, 2, 1]

7、数组的填充

使用 fill 方法

const arr = new Array(5);
arr.fill(0);
console.log(arr); // 输出 [0, 0, 0, 0, 0]

8、数组的去重

使用 Set

const arr = [1, 2, 2, 3, 3, 3];
const uniqueArr = [...new Set(arr)];
console.log(uniqueArr); // 输出 [1, 2, 3]

9、数组的切片

使用 slice 方法

const arr = [1, 2, 3, 4, 5];
const slicedArr = arr.slice(1, 4);
console.log(slicedArr); // 输出 [2, 3, 4]

总结

以上是 JavaScript 数组的基本知识和常用操作方法。数组是 JavaScript 中非常重要的数据结构,掌握这些基本操作可以帮助你更高效地处理数据。