js 数组方法的作用,各方法是否改变原有的数组

不会改变原来数组的有:
concat()---连接两个或更多的数组,并返回结果。

every()---检测数组元素的每个元素是否都符合条件。

some()---检测数组元素中是否有元素符合指定条件。

filter()---检测数组元素,并返回符合条件所有元素的数组。

indexOf()---搜索数组中的元素,并返回它所在的位置。

join()---把数组的所有元素放入一个字符串。

toString()---把数组转换为字符串,并返回结果。
lastIndexOf()---返回一个指定的字符串值最后出现的位置,在一个字符串中的指定位置从后向前搜索。

map()---通过指定函数处理数组的每个元素,并返回处理后的数组。

slice()---选取数组的的一部分,并返回一个新数组。

valueOf()---返回数组对象的原始值。

-----------分割线-------------------

会改变原来数组的有:
pop()---删除数组的最后一个元素并返回删除的元素。

push()---向数组的末尾添加一个或更多元素,并返回新的长度。

shift()---删除并返回数组的第一个元素。

unshift()---向数组的开头添加一个或更多元素,并返回新的长度。

reverse()---反转数组的元素顺序。

sort()---对数组的元素进行排序。

splice()---用于插入、删除或替换数组的元素。

转载于:https://www.cnblogs.com/chengfeng6/p/10383871.html

### JavaScript 数组方法对原数组的影响 #### 修改原数组方法 一些 JavaScript 数组方法会对调用它们的原始数组造成永久性的更改。这类操作通常涉及向数组添加、移除或替换元素。 - **push 和 pop**: 这两个方法分别用于在数组末尾添加新元素或将最后一个元素从数组中删除[^1]。 - **shift 和 unshift**: `shift` 方法会移除并返回数组的第一个元素;而 `unshift` 则是在数组开头插入一个或多个元素[^2]。 - **splice**: 此方法可以用来添加或移除数组中的项目,它能够精确控制要修改的位置以及数量。 - **reverse**: 将整个数组的内容反转顺序。 - **sort**: 对数组元素按照指定条件进行排序。 - **fill**: 使用静态值填充给定位置范围内的所有元素[^4]。 上述提到的操作都会直接影响到原来的数组实例,因此开发者应当谨慎使用,在必要时先复制一份副本再做改动。 #### 不修改原数组方法 另一些方法则创建新的数组而不改变原有数据结构: - **slice**: 提取部分现有数组并返回一个新的子数组,不影响源数组。 - **concat**: 合并两个或更多数组,并生成一个全新的组合后的数组对象。 - **map, filter, reduce 等迭代器函数**: 这些高阶函数遍历当前数组并对每一项应用某种逻辑处理后构建出另一个独立的结果集[^3]。 综上所述,理解每种方法的行为特性有助于写出更加清晰且不易引发错误的代码。当不确定某个具体实现是否会破坏初始状态时,查阅官方文档或者实验验证总是明智的选择。 ```javascript // 示例:展示如何区分这两种类型的数组方法 const originalArray = [1, 2, 3]; // 修改型方法示例 originalArray.push(4); // 结果: [1, 2, 3, 4] // 非修改型方法示例 const newArray = originalArray.slice(); // 新建了一个浅拷贝的新数组 console.log(newArray === originalArray); // false 表明这是两个不同的实体 ```
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值