Array

您所在的位置:网站首页 js数组动态添加对象数据 Array

Array

2024-07-16 20:43| 来源: 网络整理| 查看: 265

许多数组方法接受一个回调函数作为参数。回调函数按顺序为数组中的每个元素调用,且最多调用一次,并且回调函数的返回值用于确定方法的返回值。它们都具有相同的方法签名:

jsmethod(callbackFn, thisArg)

其中 callbackFn 接受三个参数

element

数组中当前正在处理的元素。

index

正在处理的元素在数组中的索引。

array

调用该方法的数组。

callbackFn 的返回值取决于调用的数组方法。

thisArg 参数(默认为 undefined)将在调用 callbackFn 时用作 this 值。最终由 callbackFn 观察到的 this 值根据通常的规则确定:如果 callbackFn 是非严格模式,原始 this 值将被包装为对象,并将 undefined/null 替换为 globalThis。对于使用箭头函数 定义的任何 callbackFn 来说,thisArg 参数都是无关紧要的,因为箭头函数没有自己的 this 绑定。

如果想要在迭代期间读取另一个索引值的话,传递给 callbackFn 的 array 参数是有用的,因为可能并不总是有一个引用当前数据的现有变量。在迭代过程中,通常不应更改数组(参见 迭代方法中的改变初始数组),但可以使用这个参数这样做。array 参数不是正在构建的数组,在类似 map()、filter() 和 flatMap() 方法的情况下——无法通过回调函数访问正在构建的数组。

所有迭代方法都是复制方法和通用方法,尽管它们在处理空槽时的行为不同。

以下方法是迭代方法:every()、filter()、find()、findIndex()、findLast()、findLastIndex()、flatMap()、forEach()、map() 和 some()。

特别地,every()、find()、findIndex()、findLast()、findLastIndex() 和 some() 并不总是在每个元素上调用 callbackFn——它们在确定返回值后立即停止迭代。

reduce() 和 reduceRight() 方法也接受一个回调函数,并对数组中的每个元素最多运行一次,但它们的方法签名与典型的迭代方法略有不同(例如,它们不接受 thisArg)。

sort() 方法也接受一个回调函数,但它不是一个迭代方法。它会就地修改数组,不接受 thisArg,并且可能在索引上多次调用回调函数。

迭代方法迭代数组,如下所示(省略许多技术细节):

jsfunction method(callbackFn, thisArg) { const length = this.length; for (let i = 0; i = 0; i--)):reduceRight()、findLast() 和 findLastIndex()。 reduce 和 reduceRight 具有略微不同的签名,并不总是从第一个/最后一个元素开始。


【本文地址】


今日新闻


推荐新闻


CopyRight 2018-2019 办公设备维修网 版权所有 豫ICP备15022753号-3