当前位置:  开发笔记 > 编程语言 > 正文

JavaScript是否填充空数组项?

如何解决《JavaScript是否填充空数组项?》经验,为你挑选了1个好方法。

我在JavaScript中编写了大量的年度数据,我正在考虑将它添加到数组中,使用year作为数组索引并将数据放入数组中.但是,Firebug似乎表明JavaScript通过用"undefined"填充数组中的两千多个条目来处理这个问题.有数百个这样的阵列在活动内存中徘徊,我担心成千上万无用数组项的开销可能会使程序开始变慢.会吗?



1> CMS..:

当您将数字索引的值设置为高于length数组的当前值时,该length属性会受到影响.

简而言之,您应该使用Object:

var data = {};
data[year] = "some data";

// or
var data = {
  2009: "2009 data",
  2010: "2010 data"
};

现在我回答问题标题:" JavaScript是否填充空数组项? "

不,正如我之前所说,只有length属性被更改,(如果需要,只有当添加的索引大于当前值时length),length才会增加到比该索引的数值多一个.

这些Array.prototype方法的工作原理是假设数组对象的索引从零开始.

以前的索引实际上并不存在于Array对象中,您可以对其进行测试:

var array = [];
array[10] = undefined;

array.hasOwnProperty(10); // true
array.hasOwnProperty(9);  // false

总之,数组意味着包含从零开始的顺序索引,如果您的属性不满足这些要求,则应该只使用一个对象.

推荐阅读
携手相约幸福
这个屌丝很懒,什么也没留下!
DevBox开发工具箱 | 专业的在线开发工具网站    京公网安备 11010802040832号  |  京ICP备19059560号-6
Copyright © 1998 - 2020 DevBox.CN. All Rights Reserved devBox.cn 开发工具箱 版权所有