JS数组的常用方法有哪些?
基本方法
1. **push()** - 向数组末尾添加一个或多个元素,返回数组的新长度。
const arr = [1, 2];
arr.push(3); // arr: [1, 2, 3]
2. **pop()** - 删除数组的最后一个元素,并返回被删除的元素。
const arr = [1, 2, 3];
arr.pop(); // arr: [1, 2]
3. **shift()** - 删除数组的第一个元素,并返回被删除的元素。
const arr = [1, 2, 3];
arr.shift(); // arr: [2, 3]
4. **unshift()** - 向数组开头添加一个或多个元素,返回数组的新长度。
const arr = [2, 3];
arr.unshift(1); // arr: [1, 2, 3]
5. **concat()** - 合并多个数组,不改变原数组,返回新数组。
const arr1 = [1, 2];
const arr2 = [3, 4];
const arr3 = arr1.concat(arr2); // arr3: [1, 2, 3, 4]
6. **slice()** - 提取数组的一部分,返回新的数组。
const arr = [1, 2, 3, 4];
const slicedArr = arr.slice(1, 3); // slicedArr: [2, 3]
7. **splice()** - 删除或替换数组中的元素,并在需要时插入新元素,改变原数组。
const arr = [1, 2, 3, 4];
arr.splice(1, 2, 'a', 'b'); // arr: [1, 'a', 'b', 4]
高阶方法
8. **forEach()** - 遍历数组,为每个元素执行一次给定的函数。
const arr = [1, 2, 3];
arr.forEach((item) => console.log(item)); // 输出 1 2 3
9. **map()** - 创建一个新数组,返回每次调用函数后的结果。
const arr = [1, 2, 3];
const doubled = arr.map((x) => x * 2); // doubled: [2, 4, 6]
10. **filter()** - 过滤数组,返回符合条件的元素组成的新数组。
const arr = [1, 2, 3, 4];
const even = arr.filter((x) => x % 2 === 0); // even: [2, 4]
11. **reduce()** - 对数组中的每个元素执行累积操作,返回累计结果。
const arr = [1, 2, 3, 4];
const sum = arr.reduce((acc, val) => acc + val, 0); // sum: 10
12. **find()** - 返回数组中第一个满足测试条件的元素。
const arr = [1, 2, 3, 4];
const found = arr.find((x) => x > 2); // found: 3
13. **findIndex()** - 返回数组中第一个满足测试条件的元素索引。
const arr = [1, 2, 3, 4];
const index = arr.findIndex((x) => x > 2); // index: 2
14. **some()** - 判断数组中是否至少有一个元素满足条件,返回布尔值。
const arr = [1, 2, 3];const hasEven = arr.some((x) => x % 2 === 0); // hasEven: true
15. **every()** - 判断数组中的所有元素是否都满足条件,返回布尔值。
const arr = [2, 4, 6];const allEven = arr.every((x) => x % 2 === 0); // allEven: true
16. **includes()** - 判断数组是否包含某个值,返回布尔值。
const arr = [1, 2, 3];const hasTwo = arr.includes(2); // hasTwo: true
17. **sort()** - 对数组进行排序,改变原数组。
const arr = [3, 1, 2];arr.sort(); // arr: [1, 2, 3]
18. **reverse()** - 反转数组元素顺序,改变原数组。
const arr = [1, 2, 3];arr.reverse(); // arr: [3, 2, 1]
19. **join()** - 将数组的所有元素连接成一个字符串,使用指定的分隔符。
const arr = [1, 2, 3];const str = arr.join('-'); // str: '1-2-3'
20. **flat()** - 将嵌套的数组“拉平”成一维数组。
const arr = [1, [2, [3, 4]]];const flatArr = arr.flat(2); // flatArr: [1, 2, 3, 4]
这些方法可以灵活组合使用,极大地提升代码的可读性和简洁性。