It acts as an array. No need to store it in an array, because it is using a 'seed'. Any time you use the same seed the expression noisejs.perlin2(X, Y) returns the same random value for the same X/Y.
Try to make/handle an array with a dimensions (100.000,100.000,1), and you will understand why not to bring it into an array.
noisejs.perlin2(100.000, 100.000) has no problem to calculate that value without storing this value (and all other 10000000000 values) in a memory eating array.
But if you insist to do so. This is the example in the first post in this topic + 1 line more code.
https://www.dropbox.com/s/76vyk7glzataj ... .capx?dl=0