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]