js数组中不会改变原有数组的方法有哪些?

在JavaScript中,处理数组时,有些方法会改变原数组(称为“原地”方法或“破坏性”方法),而有些方法则不会。不会改变原有数组的方法主要包括以下几类:

  1. 访问方法:这些方法不会改变数组,只是返回数组中的某些信息。

    • Array.prototype.concat(): 用于合并两个或多个数组,但不会改变现有数组,而是返回一个新数组。
    • Array.prototype.includes(): 判断一个数组是否包含一个特定的值,根据情况返回 truefalse
    • Array.prototype.indexOf(): 返回在数组中可以找到给定元素的第一个索引,如果不存在,则返回-1。
    • Array.prototype.join(): 将数组(或一个类数组对象)的所有元素连接到一个字符串中。
    • Array.prototype.lastIndexOf(): 返回指定元素在数组中的最后一个索引,如果不存在则返回-1。
    • Array.prototype.slice(): 返回一个新的数组对象,它是一个由开始到结束(不包括结束)选择的、由原数组的浅拷贝构成。原始数组不会被改变。
    • Array.prototype.toString(): 返回一个字符串,表示指定的数组及其元素。
    • Array.prototype.toLocaleString(): 返回一个字符串表示数组中的元素。数组中的每个元素将调用其 toLocaleString 方法,并将结果以逗号分隔的字符串形式返回。
  2. 迭代方法:这些方法用于遍历数组,并对每个元素执行某种操作,但它们不会改变原数组。

    • Array.prototype.forEach(): 对数组的每个元素执行一次提供的函数。
    • Array.prototype.map(): 创建一个新数组,其结果是该数组中的每个元素都调用一个提供的函数后的返回值。
    • Array.prototype.filter(): 创建一个新数组, 其包含通过所提供函数实现的测试的所有元素。
    • Array.prototype.find(): 返回数组中满足提供的测试函数的第一个元素的值。否则返回 undefined
    • Array.prototype.findIndex(): 返回数组中满足提供的测试函数的第一个元素的索引。否则返回-1。
    • Array.prototype.reduce(): 对数组中的每个元素执行一个由您提供的 reducer 函数(升序执行),将其结果汇总为单个返回值。
    • Array.prototype.reduceRight(): 同 reduce(),但是从右到左执行。
    • Array.prototype.some(): 测试数组中是否至少有一个元素通过由提供的函数实现的测试。
    • Array.prototype.every(): 测试数组的所有元素是否都通过了由提供的函数实现的测试。
  3. 其他方法

    • Array.from(): 创建一个新的数组实例从一个可迭代的或类数组对象。
    • Array.of(): 创建一个具有可变数量参数的新数组实例,而不考虑参数的数量或类型。

请注意,虽然这些方法不会改变原始数组,但它们中的许多方法(如 mapfilterslice)会返回一个新数组。在使用这些方法时,请确保你正确地处理了返回的新数组。

评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

王铁柱666

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值