在JavaScript中,处理数组时,有些方法会改变原数组(称为“原地”方法或“破坏性”方法),而有些方法则不会。不会改变原有数组的方法主要包括以下几类:
-
访问方法:这些方法不会改变数组,只是返回数组中的某些信息。
Array.prototype.concat(): 用于合并两个或多个数组,但不会改变现有数组,而是返回一个新数组。Array.prototype.includes(): 判断一个数组是否包含一个特定的值,根据情况返回true或false。Array.prototype.indexOf(): 返回在数组中可以找到给定元素的第一个索引,如果不存在,则返回-1。Array.prototype.join(): 将数组(或一个类数组对象)的所有元素连接到一个字符串中。Array.prototype.lastIndexOf(): 返回指定元素在数组中的最后一个索引,如果不存在则返回-1。Array.prototype.slice(): 返回一个新的数组对象,它是一个由开始到结束(不包括结束)选择的、由原数组的浅拷贝构成。原始数组不会被改变。Array.prototype.toString(): 返回一个字符串,表示指定的数组及其元素。Array.prototype.toLocaleString(): 返回一个字符串表示数组中的元素。数组中的每个元素将调用其toLocaleString方法,并将结果以逗号分隔的字符串形式返回。
-
迭代方法:这些方法用于遍历数组,并对每个元素执行某种操作,但它们不会改变原数组。
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(): 测试数组的所有元素是否都通过了由提供的函数实现的测试。
-
其他方法:
Array.from(): 创建一个新的数组实例从一个可迭代的或类数组对象。Array.of(): 创建一个具有可变数量参数的新数组实例,而不考虑参数的数量或类型。
请注意,虽然这些方法不会改变原始数组,但它们中的许多方法(如 map、filter、slice)会返回一个新数组。在使用这些方法时,请确保你正确地处理了返回的新数组。
612

被折叠的 条评论
为什么被折叠?



