javascript - 直接赋值数组和array.length的使用

标签 javascript arrays

<分区>

我说的是繁重的编码,例如速度昂贵的图形或物理处理(非标准)。

var a=[0,1,2,3,4,5,6,7,8,9];

当你问的时候会发生什么

console.log(a.lengh);

它是否像访问一个随变化而更新的普通变量一样,还是真的每次都计算在内?

假设你有很多依赖于了解这一点的循环

var i=flepdefloo;  // some large number;

var a2=[];

while(i--){
    a2[a2.length] = 'something';
    }

a2.length 是否应该在单独的 var 中手动缓存/递增?

最佳答案

.length 的值是在数组发生变化时计算的,而不是在访问数组时计算的。至少according to the specification .

事实上,当我在 Chrome 中检查该属性时,它是一个普通的数据属性(不是 getter 或 setter):

> Object.getOwnPropertyDescriptor([], 'length');
Object {value: 0, writable: true, enumerable: false, configurable: false}

但是,还有其他方法可以将元素添加到数组中。您可以使用 .push:

arr.push(value);

您还可以使用特定长度初始化数组并使用循环变量设置值(这需要您更改循环):

var arr = new Array(length);
// ...
arr[i] = value;

关于javascript - 直接赋值数组和array.length的使用,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/26181999/

相关文章:

javascript - 如何使用mailapp发送图像和图表?

arrays - 如何使用组合框的第一个存储值作为默认值EXTJS

javascript - 更改日期字符串的格式

javascript - 如何在谷歌图表中添加新的Y刻度

javascript - Twitter 提前输入,Bloodhound 过滤器开始

java - 如何在 main 中使用数组方法中的元素?

c++ - C++ 对象数据成员的最佳数组类型?

java - 如何在 Java 中创建类型安全的泛型数组?

python - 使用结构化数组来命名 numpy 数组中的轴

javascript - 如何从建议列表中自动填充文本框?