JavaScript 数组的一些方法&&数组拷贝
发布网友
发布时间:2024-10-15 20:26
我来回答
共1个回答
热心网友
时间:2024-10-15 22:03
JavaScript数组的方法与拷贝
JavaScript数组提供了丰富的操作方法,包括添加、删除、遍历、转换和搜索等,同时还有深浅拷贝的不同实现方式。让我们一一探索:
添加与删除
Array.unshift:在数组开头添加元素,改变原数组,遵循FIFO规则。
Array.push:在数组结尾添加元素,改变原数组,类似于队列操作。
Array.shift:删除并返回数组开头元素,空数组时返回undefined。
Array.pop:删除并返回数组结尾元素,空数组时返回undefined。
Array.concat:连接多个数组,不改变原数组。
Array.slice:创建数组的副本,选定元素进行操作。
Array.splice:在数组中添加或删除元素,返回被删除项目。
遍历与转换
Array.forEach:遍历数组,但不改变原数组。
Array.map:对数组元素应用函数,返回新数组。
Array.sort:对数组元素排序,改变原数组。
Array.reverse:数组元素反转,改变原数组。
Array.join:合并数组为字符串,不改变原数组。
reduce/reduceRight:数组元素的累加或计算,可选初始值,改变原数组。
搜索与查找
Array.indexOf/lastIndexOf:查找元素位置,不改变原数组,对大小写敏感。
Array.includes:判断数组是否包含元素,与`indexOf`类似,可指定起始位置。
Array.find/findIndex:查找符合条件的第一个元素及其位置。
Array.filter:筛选数组元素,返回符合条件的数组。
扩展与拷贝
Array.from:转为真正的数组,或处理可迭代对象。
Array.of:将一组值转换为数组。
copyWithin:数组内部元素复制,改变原数组。
fill:填充数组,改变原数组。
entries/keys/values:遍历数组的不同形式,不改变原数组。
flat/flatMap:处理嵌套数组,返回新数组,原数组不变。
数组拷贝
扩展运算符:【...】,浅拷贝,但可能导致引用问题。
concat:连接数组,浅拷贝。
slice:指定范围的浅拷贝,无参数时拷贝原数组。
Array.from:从类似数组或可迭代对象创建浅拷贝。
JSON.parse & JSON.stringify:深拷贝对象,适用于复杂对象,但有特殊处理需求。