链表和数组的迭代效率哪个高?

JavaScript016

链表和数组的迭代效率哪个高?,第1张

数组,因为数组的存储在空间上是连续的。

因为空间局部性(缓存的存在),数组迭代效率更高。

当然也不绝对(如果你的迭代序列因为缓存发生抖动,速度就大打折扣),但几乎都是数组更快。

数组的迭代方法,每个方法都会接受两个参数:(1)要在每一项上运行的函数(2)运行该函数的作用域——影响this的值(可选)。传入方法中的函数会接受三个参数:(1)数组每项的值(2)该项在数组中的位置(3)数组对象本身。

5种迭代方法的作用如下:

数组还有两个归并的方法:reduce和reduceRight。这两个方法会迭代数组的所有项,最终返回一个迭代的最后值。reduce方法从数组的第一项开始迭代,reduceRight则从数组的最后一项开始。两个方法接受参数相同,都是两个参数:一个是在在每项上调用的函数以及迭代的初始值(可选)。下面,我们对reduce方法的实现进行详解。

ES6规范中Set数据结构,类似于数组,但其中的值全都是唯一的。搭配数组的迭代方法,我们能够快速方便地实现两个或多个数组的交、并、差集。

MDN web docs

ECMAScript 6入门