从数据结构的角度分析每一个都要比在

从数据结构的角度分析每一个都要比在
听说Firefox的js引擎支持每个代码的语法,如下面的代码:

复制代码代码如下所示:
var arr = { 10,20,30,40,50 };
每个(VaR K改编)
console.log(K);

对ARR数组的内容可以直接穿越。

由于只支持Firefox,几乎所有js代码都不使用此特性。

然而,在Actionscript,每个语法自然是支持的,无论是数组或向量或字典,只要枚举对象可以在和每个。

以前没有什么区别,为了麻烦敲一个字,它总是跟着熟悉的东西进来。

但是今天我仔细考虑了一下。从数据结构的角度来看,我认为js和。

原因很简单:数组不是真正意义上的数组!

什么是真正意义上的数组当然,它是由传统语言中的类型{定义的数据类型,并且所有元素都是连续保存的。

数组是数组,但熟悉JS知道它是一个非线性伪数组和下标可以是任何数。写作ARR { 1000000 }没有申请空间存储了一百万个元素,而是将1000000对应的哈希值,这相当于一个很小的存储空间,节省了很多记忆。
例如,有以下数组:

复制代码代码如下所示:
var arr = { };
ARR { 10 } = 1000;
ARR { 20 } = 2000;
ARR { 30 } = 5000;
ARR { 40 } = 8000;
ARR { 200 } = 9000;
用数组遍历数组的过程…这是一个非常繁琐的过程:
每一次的ARR {K }被遍历,哈希(K)进行了计算,基于哈希表的容量,如果有冲突,最终的结果将是价值发现

如果每个语法…在支持的内部数据结构会快得多:
在数组中,每个值直接用作节点并由链表维护。每当添加或删除一个值时,链接关系都会更新。
每次都是…在遍历中,只需要从第一个节点迭代,不需要任何散列计算。

当然,对于线性阵列如矢量在AS3中,它们之间没有差异;在相同的方式,相同的是,支持二进制在HTML5阵ArrayBuffer真的。但在理论上,即使是是一个连续的线性阵列,每个在快一点:

当…在遍历,每次我们访问ARR {K },我们需要检查指标边界,而每个直接反馈的迭代变量从底层根据内链列表,从而节省了跨境检验过程。
免责声明:本网信息来自于互联网,目的在于传递更多信息,并不代表本网赞同其观点。其原创性以及文中陈述文字和内容未经本站证实,对本文以及其中全部或者部分内容、文字的真实性、完整性、及时性本站不作任何保证或承诺,并请自行核实相关内容。本站不承担此类作品侵权行为的直接责任及连带责任。如若本网有任何内容侵犯您的权益,请及时联系我们,本站将会在24小时内处理完毕。
相关文章
返回顶部