1. 添加/删除元素
-
push()
在数组末尾添加一个或多个元素,返回新数组的长度。let arr = [1, 2, 3]; arr.push(4); // arr = [1, 2, 3, 4] -
pop()
删除数组的最后一个元素,并返回该元素。let arr = [1, 2, 3]; let last = arr.pop(); // last = 3, arr = [1, 2] -
unshift()
在数组开头添加一个或多个元素,返回新数组的长度。let arr = [1, 2, 3]; arr.unshift(0); // arr = [0, 1, 2, 3] -
shift()
删除数组的第一个元素,并返回该元素。let arr = [1, 2, 3]; let first = arr.shift(); // first = 1, arr = [2, 3]
2. 数组操作
-
concat()
合并两个或多个数组,返回一个新数组。let arr1 = [1, 2]; let arr2 = [3, 4]; let newArr = arr1.concat(arr2); // newArr = [1, 2, 3, 4] -
slice()
返回数组的一部分(浅拷贝),不修改原数组。let arr = [1, 2, 3, 4]; let subArr = arr.slice(1, 3); // subArr = [2, 3] -
splice()
添加或删除数组中的元素,返回被删除的元素。let arr = [1, 2, 3, 4]; arr.splice(1, 2, 'a', 'b'); // arr = [1, 'a', 'b', 4]
3. 遍历数组
-
forEach()
对数组的每个元素执行一次回调函数。javascript
复制
let arr = [1, 2, 3]; arr.forEach(item => console.log(item)); // 输出 1, 2, 3 -
map()
对数组的每个元素执行回调函数,返回一个新数组。let arr = [1, 2, 3]; let newArr = arr.map(item => item * 2); // newArr = [2, 4, 6] -
filter()
返回满足条件的元素组成的新数组。let arr = [1, 2, 3, 4]; let filtered = arr.filter(item => item > 2); // filtered = [3, 4] -
reduce()
对数组中的每个元素执行回调函数,返回一个累加结果。let arr = [1, 2, 3, 4]; let sum = arr.reduce((acc, item) => acc + item, 0); // sum = 10 -
find()
返回数组中第一个满足条件的元素,否则返回undefined。let arr = [1, 2, 3, 4]; let result = arr.find(item => item > 2); // result = 3 -
findIndex()
返回数组中第一个满足条件的元素的索引,否则返回-1。let arr = [1, 2, 3, 4]; let index = arr.findIndex(item => item > 2); // index = 2
4. 查找和判断
-
includes()
判断数组是否包含某个值,返回布尔值。let arr = [1, 2, 3]; let hasTwo = arr.includes(2); // hasTwo = true -
indexOf()
返回数组中某个值的第一个索引,如果不存在则返回-1。let arr = [1, 2, 3]; let index = arr.indexOf(2); // index = 1 -
lastIndexOf()
返回数组中某个值的最后一个索引,如果不存在则返回-1。let arr = [1, 2, 3, 2]; let lastIndex = arr.lastIndexOf(2); // lastIndex = 3 -
some()
判断数组中是否有至少一个元素满足条件,返回布尔值。let arr = [1, 2, 3]; let hasEven = arr.some(item => item % 2 === 0); // hasEven = true -
every()
判断数组中的所有元素是否都满足条件,返回布尔值。let arr = [1, 2, 3]; let allEven = arr.every(item => item % 2 === 0); // allEven = false
5. 排序和反转
-
sort()
对数组元素进行排序(默认按字符串排序),可传入比较函数。let arr = [3, 1, 2]; arr.sort((a, b) => a - b); // arr = [1, 2, 3] -
reverse()
反转数组中的元素顺序。let arr = [1, 2, 3]; arr.reverse(); // arr = [3, 2, 1]
6. 其他常用方法
-
join()
将数组中的所有元素拼接成一个字符串。let arr = [1, 2, 3]; let str = arr.join('-'); // str = "1-2-3" -
toString()
将数组转换为字符串。let arr = [1, 2, 3]; let str = arr.toString(); // str = "1,2,3" -
Array.isArray()
判断一个值是否为数组。let arr = [1, 2, 3]; let isArr = Array.isArray(arr); // isArr = true -
flat()
将嵌套数组“拉平”,返回一个新数组。let arr = [1, [2, [3]]]; let flatArr = arr.flat(2); // flatArr = [1, 2, 3] -
flatMap()
先对数组中的每个元素执行映射,然后将结果“拉平”。let arr = [1, 2, 3]; let result = arr.flatMap(x => [x, x * 2]); // result = [1, 2, 2, 4, 3, 6]