1. 首页
  2. 编程语言
  3. Javascript
  4. 从数据结构分析看:用for each...in 比 for...in 要快些

从数据结构分析看:用for each...in 比 for...in 要快些

上传者: 2021-07-02 21:50:24上传 PDF文件 78.07 KB 热度 5次

之前听说火狐的JS引擎支持for each in的语法,例如下述的代码:由于只有FireFox才支持,所以几乎所有的JS代码都不用这一特征。不过在ActionScript里天生就支持for each的语法,不论Array还是Vector,还是Dictionary,只要是可枚举的对象都可以for in和for each in。不过今天仔细琢磨了会,从数据结构的角度分析了下,觉得for in和for each in效率上有着本质的区别,无论是JS还是AS。“Array”虽然也是数组的意思,但熟悉JS的都知道,它其实是个非线性的伪数组,下标可以是任意数字。每当有值添加或删除,就更新其链接关系。当for each...in遍历时,只需从第一个节点往后迭代即可,无需任何Hash计算。当然,对于AS3里Vector这样的线性数组来说,两者相差不大;同理,HTML5里支持二进制的数组ArrayBuffer也是如此。

下载地址
用户评论