1. push()
 
- 功能:向数组的末尾添加一个或多个元素,并返回新数组的长度。(改变原数组)
- 示例:
let arr = [1, 2, 3];
arr.push(4); // [1, 2, 3, 4]
 
2. pop()
 
- 功能:移除数组的最后一个元素,并返回该元素。(改变原数组)
- 示例:
let arr = [1, 2, 3];
let removedElement = arr.pop(); // 3
console.log(arr); // [1, 2]
 
3. shift()
 
- 功能:移除数组的第一个元素,并返回该元素,数组的长度会减 1。(改变原数组)
- 示例:
let arr = [1, 2, 3];
let removedElement = arr.shift(); // 1
console.log(arr); // [2, 3]
 
4. unshift()
 
- 功能:向数组的开头添加一个或多个元素,并返回新数组的长度。(改变原数组)
- 示例:
let arr = [2, 3];
let a = arr.unshift(1); 
console.log(a); // 3
console.log(arr);// [1, 2, 3]
 
5. concat()
 
- 功能:合并两个或多个数组,返回一个新的数组。(生成一个新数组)
- 示例:
let arr1 = [1, 2];
let arr2 = [3, 4];
let newArr = arr1.concat(arr2); // [1, 2, 3, 4]
 
6. slice()
 
- 功能:返回数组的一个浅拷贝,包含从 start索引到end索引(不包括end)。(不改变原数组,生成一个新数组)
- 示例:
let arr = [1, 2, 3, 4, 5];
let newArr = arr.slice(1, 3); // [2, 3]
 
7. splice()
 
- 功能:从数组中添加、删除或替换元素,直接修改原数组。(不改变原数组,生成一个新数组)
- 示例:(从索引2中开始删除2个元素,并插入6、7。)
let arr = [1, 2, 3, 4, 5];
arr.splice(2, 2, 6, 7); // 从索引 2 开始删除 2 个元素,并插入 6 和 7
console.log(arr); // [1, 2, 6, 7, 5]
 
8. indexOf()
 
- 功能:返回数组中第一个匹配的元素的索引,如果没有找到则返回 -1。(不改变原数组,生成一个新数组)
- 示例:
let arr = [1, 2, 3, 4];
let index = arr.indexOf(3); // 2
 
9. includes()
 
- 功能:判断数组是否包含指定的元素,返回 true或false。(不改变原数组,生成一个新数组)
- 示例:
let arr = [1, 2, 3, 4];
let contains = arr.includes(3); // true
 
10. map()
 
- 功能:返回一个新数组,数组中的每个元素是通过调用提供的函数进行转换后的值。(不改变原数组,生成一个新数组)
- 示例:
let arr = [1, 2, 3];
let newArr = arr.map(x => x * 2); // [2, 4, 6]
 
11. filter()
 
- 功能:返回一个新数组,包含所有通过提供的测试函数的元素。(不改变原数组,生成一个新数组)
- 示例:
let arr = [1, 2, 3, 4, 5];
let filteredArr = arr.filter(x => x > 3); // [4, 5]
 
12. reduce()
 
- 功能:对数组中的每个元素执行指定的操作,并返回一个单一的结果(如求和)。(不改变原数组,生成一个新数组)
- 示例:
let arr = [1, 2, 3, 4];
let sum = arr.reduce((acc, curr) => acc + curr, 0); // 10
 
13. reduceRight()
 
- 功能:与 reduce()类似,但从数组的右侧开始执行。(不改变原数组,生成一个新数组)
- 示例:
let arr = [1, 2, 3, 4];
let sum = arr.reduceRight((acc, curr) => acc + curr, 0); // 10
 
14. forEach()(可以不修改原数组,也可以通过索引方式改变原数组。)
 
- 功能:对数组中的每个元素执行指定的回调函数,但不会返回新数组。
- 示例:
let arr = [1, 2, 3];
arr.forEach(x => console.log(x)); // 1 2 3
 
15. some()
 
- 功能:测试数组中是否至少有一个元素满足提供的测试函数,返回 true或false。(不改变原数组,生成一个新数组)
- 示例:
let arr = [1, 2, 3];
let result = arr.some(x => x > 2); // true
 
16. every()
 
- 功能:测试数组中是否所有元素都满足提供的测试函数,返回 true或false。(不改变原数组,生成一个新数组)
- 示例:
let arr = [1, 2, 3];
let result = arr.every(x => x > 0); // true
 
17. sort()
 
- 功能:对数组的元素进行排序,默认按字典顺序排序,可以提供比较函数进行自定义排序。(改变原数组)
- 示例:
let arr = [3, 1, 2];
arr.sort(); // [1, 2, 3]let arr2 = [3, 1, 2];
arr2.sort((a, b) => a - b); // [1, 2, 3]
 
18. reverse()
 
- 功能:颠倒数组中元素的顺序,直接修改原数组。(改变原数组)
- 示例:
let arr = [1, 2, 3];
arr.reverse(); // [3, 2, 1]
 
19. find()
 
- 功能:返回数组中第一个满足提供的测试函数的元素。如果没有找到返回 undefined。(不改变原数组,生成一个新数组)
- 示例:
let arr = [1, 2, 3, 4];
let result = arr.find(x => x > 2); // 3
 
20. findIndex()
 
- 功能:返回数组中第一个满足测试函数的元素的索引。如果没有找到返回 -1。(不改变原数组,生成一个新数组)
- 示例:
let arr = [1, 2, 3, 4];
let index = arr.findIndex(x => x > 2); // 2(3的index是2)
 
21. flat()
 
- 功能:将多维数组“拉平”,返回一个新的数组,默认一层深度,可以通过参数指定深度。(改变原数组)
- 示例:
let arr = [1, [2, [3, 4]]];
let newArr = arr.flat(2); // [1, 2, 3, 4]
 
22. flatMap()
 
- 功能:首先对数组中的每个元素执行指定的函数,然后将结果“拉平”一层并返回。(改变原数组)
- 示例:先执行map,再执行flat
let arr = [1, 2, 3];
let newArr = arr.flatMap(x => [x, x * 2]); // [1, 2, 2, 4, 3, 6]