DEV Community

Discussion on: Improve Your Algorithms with this Simple Equation

Collapse
 
joelnet profile image
JavaScript Joel

Array length isn't "calculated" it's a property of the Array, so to get the Array.length it is just O(1).

Collapse
 
guisanpea profile image
Santiago

This is really interesting. However the only thing I find IS that it depends on the implementation.
Could you please send a source? I'm really interested on how this property gets calculated

Thread Thread
 
artoodeeto profile image
aRtoo

maybe joel is talking about javascript. Hes right its a property of an array. Thats how V8 implements it (sorry I cant find the link but Its in v8.dev). In other programming languages its still O(1) or constant time because it will do an arithmetic operation, example before c++14 (not sure) we do it in class was like totalNumberOfbytesInArray / numberOfBytesInInt. or maybe im wrong because it was 2008. lools

Thread Thread
 
joelnet profile image
JavaScript Joel

When an item is added to or removed from the array, the length property is updated. You can check this by running this code:

const array = [1, 2, 3];
array.length = 100;

console.log(array.length) //=> 100

length NEEDS to be a property, otherwise code like this would become exponential:

for (let i = 0; i < input.length; i++) { }
 
joelnet profile image
JavaScript Joel

I think this Tweet is relevant to the discussion: