前言
JavaScript 中的数组是一种数据结构,它可以包含多个值,并且使用索引来进行访问。它是一种动态的数据结构,意味着你可以随时添加或删除数组元素,而无需事先声明数组的大小。以下是一些常用的数组处理方法:
- push() 和 pop():用于添加和删除数组尾部的元素,分别返回新的数组长度和删除的元素。
let arr = [1, 2, 3];
arr.push(4); // 添加元素
console.log(arr); // [1, 2, 3, 4]
let deletedEl = arr.pop(); // 删除元素
console.log(deletedEl); // 4
console.log(arr); // [1, 2, 3]
- unshift() 和 shift():用于添加和删除数组头部的元素,分别返回新的数组长度和删除的元素。
let arr = [2, 3, 4];
arr.unshift(1); // 添加元素
console.log(arr); // [1, 2, 3, 4]
let deletedEl = arr.shift(); // 删除元素
console.log(deletedEl); // 1
console.log(arr); // [2, 3, 4]
- slice():用于截取数组的一部分,返回新的数组,不改变原数组。
let arr = [1, 2, 3, 4, 5, 6];
let slicedArr = arr.slice(2, 4); // 截取位置 2 到 4 之间的元素(不包含位置 4)
console.log(slicedArr); // [3, 4]
console.log(arr); // [1, 2, 3, 4, 5, 6]
- splice():用于删除或添加元素到数组中,可以在任何位置进行添加和删除操作,返回删除的元素组成的数组,可改变原数组。
let arr = [1, 2, 3, 4];
arr.splice(1, 2); // 从位置 1 开始删除 2 个元素
console.log(arr); // [1, 4]
arr.splice(1, 0, 2, 3); // 从位置 1 开始插入 2 和 3
console.log(arr); // [1, 2, 3, 4]
- forEach():遍历数组中的每一个元素,接受一个函数作为参数,在每次遍历时都会调用该函数。
let arr = [1, 2, 3];
arr.forEach(function(item, index) {
console.log(item, index);
});
// 输出:1 0, 2 1, 3 2
- map():对每一个元素进行处理,返回新的数组,不改变原数组。
let arr = [1, 2, 3];
let newArr = arr.map(function(item) {
return item * 2;
});
console.log(newArr); // [2, 4, 6]
- filter():过滤数组中不需要的元素,返回一个新数组,不改变原数组。
let arr = [1, 2, 3, 4, 5];
let newArr = arr.filter(function(item) {
return item % 2 === 0;
});
console.log(newArr); // [2, 4]
- sort():对数组进行排序,可自定义排序规则,可改变原数组。
let arr = [3, 1, 4, 2];
arr.sort(); // 排序结果为 [1, 2, 3, 4]
let arr2 = [{name: "A"}, {name: "C"}, {name: "B"}];
arr2.sort(function(a, b) {
return a.name > b.name;
}); // 排序结果为 [{name: "A"}, {name: "B"}, {name: "C"}]
- reduce():用于对数组中的元素累加,接受一个 reducer 函数,返回最后的累加结果。
let arr = [1, 2, 3];
let sum = arr.reduce(function(total, item) {
return total + item;
}, 0);
console.log(sum); // 6
JavaScript 提供了许多数组方法来处理数组,以下是常用的方法:
-
concat()
:将两个或多个数组合并成一个数组。 -
slice()
:从一个数组中截取一个子数组。 -
join()
:将数组的所有元素放入一个字符串。 -
toString()
:将数组转换成字符串形式。 -
sort()
:对数组进行排序。 -
reverse()
:将数组元素反转。 -
indexOf()
:搜索数组中的指定元素,并返回其第一个索引。 -
lastIndexOf()
:返回指定元素在数组中最后一个出现的索引。