js中数组的常用方法
操作数组
1. join
将数组的所有元素连接成一个字符串
let arr = ['Hello', 'world', '!'];
console.log(arr.join(' ')); // 输出: "Hello world !"
2. split
根据指定的分隔符将字符串拆分为子字符串,并返回由这些子字符串组成的数组
let str = "Hello world!";
console.log(str.split(' ')); // 输出: ["Hello", "world!"]
3. push
在数组末尾添加一个或多个元素,并返回数组的新长度。
let arr = [1, 2];
arr.push(3);
console.log(arr); // 输出: [1, 2, 3]
4. pop
移除数组的最后一个元素,并返回该元素。
let arr = [1, 2, 3];
console.log(arr.pop()); // 输出: 3
console.log(arr); // 输出: [1, 2]
5. unshift
在数组开头添加一个或多个元素,并返回数组的新长度。
let arr = [1, 2, 3];
arr.unshift(0);
console.log(arr); // 输出: [0, 1, 2, 3]
6. shift
移除并返回数组的第一个元素。
let arr = [1, 2, 3];
console.log(arr.shift()); // 输出: 1
console.log(arr); // 输出: [2, 3]
7. reverse
颠倒数组中元素的位置。原地修改数组,并返回修改后的数组。
let arr = [1, 2, 3];
arr.reverse();
console.log(arr); // 输出: [3, 2, 1]
8. sort
对数组元素进行排序。默认按字符串Unicode码点顺序排列。可以传入一个比较函数以自定义排序规则。
let arr = [3, 1, 2];
arr.sort((a, b) => a - b);//默认a < b,返回值 < 0 为升序
console.log(arr); // 输出: [1, 2, 3]
9. concat
合并两个或更多数组而不改变原数组,返回新数组。
let arr1 = [1, 2];
let arr2 = [3, 4];
let newArr = arr1.concat(arr2);
console.log(newArr); // 输出: [1, 2, 3, 4]
10. splice
通过删除、替换现有元素或添加新元素来修改数组,并返回被删除的元素。
let arr = [1, 2, 3, 4];
arr.splice(1, 2, 'a', 'b'); // 从索引1开始删除2个元素,插入'a'和'b'
console.log(arr); // 输出: [1, 'a', 'b', 4]
11. slice
提取数组的一部分并返回一个新数组。不修改原数组。
let arr = [1, 2, 3, 4, 5];
let newArr = arr.slice(1, 4); // 提取从索引1到索引4(不包括)的元素
console.log(newArr); // 输出: [2, 3, 4]
遍历数组
1. forEach
对数组的每个元素执行一次提供的函数,没有返回值。
let arr = [1, 2, 3];
arr.forEach((value, index) => console.log(`Index: ${index}, Value: ${value}`));
// 输出:
// Index: 0, Value: 1
// Index: 1, Value: 2
// Index: 2, Value: 3
2. map
创建一个新数组,其结果是该数组中的每个元素都调用一个提供的函数后返回的结果。
let arr = [1, 2, 3];
let newArr = arr.map(value => value * 2);
console.log(newArr); // 输出: [2, 4, 6]
3. filter
创建一个新数组,包含通过所提供函数实现的测试的所有元素。
let arr = [1, 2, 3, 4];
let filteredArr = arr.filter(value => value > 2);
console.log(filteredArr); // 输出: [3, 4]
4. find
返回数组中满足提供的测试函数的第一个元素的值。如果没有找到,则返回undefined。
let arr = [1, 2, 3, 4];
let foundValue = arr.find(value => value > 2);
console.log(foundValue); // 输出: 3
5. findIndex
返回数组中满足提供的测试函数的第一个元素的索引。如果没有找到,则返回-1。
let arr = [1, 2, 3, 4];
let foundIndex = arr.findIndex(value => value > 2);
console.log(foundIndex); // 输出: 2
6. some
测试数组中的某些元素是否至少有一个通过了由提供的函数实现的测试。
let arr = [1, 2, 3, 4];
let hasBigNumber = arr.some(value => value > 3);
console.log(hasBigNumber); // 输出: true
7. every
测试数组的所有元素是否都通过了由提供的函数实现的测试。
let arr = [1, 2, 3, 4];
let allSmallNumbers = arr.every(value => value < 5);
console.log(allSmallNumbers); // 输出: true
8. reduce
对数组中的每个元素执行一个reducer函数(升序执行),将其结果汇总为单个返回值。
let arr = [1, 2, 3, 4];
let sum = arr.reduce((accumulator, currentValue) => accumulator + currentValue, 0);
console.log(sum); // 输出: 10