Array |
您所在的位置:网站首页 › js数组动态添加对象数据 › Array |
许多数组方法接受一个回调函数作为参数。回调函数按顺序为数组中的每个元素调用,且最多调用一次,并且回调函数的返回值用于确定方法的返回值。它们都具有相同的方法签名: 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 |