JavaScript基础篇:Array常用方法
目录
1. 基础操作相关
2. 遍历与转换
3. 查找与判断
4. 排序与变换
5.总结
1. 基础操作相关
数组的基础操作主要围绕增、删、改、查展开,以下方法是最常用的基础操作:
(1)concat()
作用:连接两个或多个数组,返回一个新数组,常用于合并数组。
const arr1 = [1, 2];
const arr2 = [3, 4];
const result = arr1.concat(arr2); // [1, 2, 3, 4]
(2)push
作用:向数组末尾添加一个或多个元素,返回新数组的长度。
const arr = [1, 2];
arr.push(3); // 返回3,arr变为[1, 2, 3]
(3)pop()
作用: 删除数组末尾元素并返回该元素。
const arr = [1, 2, 3];
const last = arr.pop(); // last=3,arr变为[1, 2]
(4)shift()
作用:删除数组开头元素并返回该元素,常用于队列操作。
const arr = [1, 2, 3];
const first = arr.shift(); // first=1,arr变为[2, 3]
(5)unshift()
作用:向数组开头添加一个或多个元素,返回新数组长度。
const arr = [2, 3];
arr.unshift(1); // 返回3,arr变为[1, 2, 3]
(6)splice()
作用:灵活的增删改操作,可以从指定位置删除元素,也可以插入新元素。
const arr = [1, 2, 3, 4];
arr.splice(1, 2, 'a', 'b'); // 从索引1开始删除2个元素,插入'a','b'
// arr变为[1, 'a', 'b', 4]
(7)slice()
作用:截取数组的一部分,返回一个新数组,常用于浅拷贝或分割数组。
const arr = [1, 2, 3, 4];
const part = arr.slice(1, 3); // [2, 3]
2. 遍历与转换
遍历和转换数组是函数式编程的基础,以下方法是日常开发中必不可少的:
(1)forEach()
作用:遍历数组,每个元素执行一次回调函数,常用于副作用操作。
const arr = [1, 2, 3];
arr.forEach(item => console.log(item));
(2)map()
作用:转换数组元素,返回新数组,保持原数组不变。
const arr = [1, 2, 3];
const doubled = arr.map(x => x * 2); // [2, 4, 6]
(3)filter()
作用:过滤符合条件的元素,返回新数组。
const arr = [1, 2, 3, 4];
const evens = arr.filter(x => x % 2 === 0); // [2, 4]
(4)reduce()
作用:将数组元素归约为单个值,常用于求和、统计等复杂计算。
const arr = [1, 2, 3, 4];
const sum = arr.reduce((acc, cur) => acc + cur, 0); // 10
(5)some()
作用:判断是否存在至少一个元素满足条件。
const arr = [1, 2, 3];
const hasEven = arr.some(x => x % 2 === 0); // true
(6)every()
作用:判断是否所有元素都满足条件。
const arr = [2, 4, 6];
const allEven = arr.every(x => x % 2 === 0); // true
(7)find()
作用:查找第一个满足条件的元素。
const arr = [1, 3, 4, 6];
const firstEven = arr.find(x => x % 2 === 0); // 4
(8)findIndex()
作用:查找第一个满足条件元素的索引。
const arr = [1, 3, 4, 6];
const index = arr.findIndex(x => x % 2 === 0); // 2
3. 查找与判断
数组查找和判断方法方便快速定位元素或判断状态:
(1)includes()
作用:判断数组是否包含某个元素,语义清晰。
const arr = [1, 2, 3];
arr.includes(2); // true
(2)indexOf()
作用:查找元素索引,找不到返回-1。
const arr = [1, 2, 3];
arr.indexOf(2); // 1
(3)lastIndexOf()
作用:查找元素最后出现的位置。
const arr = [1, 2, 3, 2];
arr.lastIndexOf(2); // 3
4. 排序与变换
数组排序和格式化常用于数据展示和输出:
(1)sort()
作用:对数组元素进行排序,默认按字符串Unicode排序,数字排序需传入比较函数。
const arr = [3, 1, 4, 2];
arr.sort((a, b) => a - b); // [1, 2, 3, 4]
(2)reverse()
作用:反转数组顺序。
const arr = [1, 2, 3];
arr.reverse(); // [3, 2, 1]
(3)join()
作用:将数组元素合并成字符串,常用于生成文本或拼接。
const arr = ['a', 'b', 'c'];
const str = arr.join('-'); // 'a-b-c'
5.总结
| 分类 | 方法 | 说明 |
|---|---|---|
| 基础操作相关 | concat() | 连接数组,合并多个数组非常常用。 |
| push() | 向数组末尾添加元素,最常用的添加操作。 | |
| pop() | 删除数组末尾元素,常用于栈结构。 | |
| shift() | 删除数组开头元素,队列操作常用。 | |
| unshift() | 向数组开头添加元素,虽然用得少,但偶尔会用。 | |
| splice() | 灵活的增删改操作,项目中非常常用。 | |
| slice() | 截取数组片段,常用于浅拷贝或分割数组。 | |
| 遍历与转换 | forEach() | 遍历数组,执行副作用操作。 |
| map() | 转换数组元素,生成新数组,函数式编程必备。 | |
| filter() | 过滤数组元素,条件筛选必用。 | |
| reduce() | 归约操作,统计、累加、合并等复杂计算。 | |
| some() | 判断是否存在符合条件的元素,常用于条件判断。 | |
| every() | 判断是否全部符合条件。 | |
| find() | 查找第一个满足条件的元素。 | |
| findIndex() | 查找第一个满足条件元素的索引。 | |
| 查找与判断 | includes() | 判断数组是否包含某个元素,简洁直观。 |
| indexOf() | 查找元素索引,兼容性好。 | |
| lastIndexOf() | 查找元素最后出现的位置。 | |
| 排序与变换 | sort() | 排序数组,前端展示排序必备。 |
| reverse() | 反转数组顺序,偶尔用。 | |
| join() | 将数组元素合并为字符串,用于输出或生成特定格式。 |
