[thelist] Javascript array weirdness

Phil Turmel pturmel-webdev at turmel.org
Fri Aug 21 14:13:22 CDT 2009


Chrome wrote:
[snip /]
> 
> As you can see this is meant to populate the array this.request with values
> from the theForm... Problem is that the array seems to be empty... The
> strange thing is if that you call the array value by its key it has the
> value but if you try to iterate through it it's blank (or seems to be)
> 
> I tried inserting a hard value of this.request[1] = 'Test'; and got the
> output as [undefined, 'Test']... so I tried this.request['test'] = 'Test';
> and got [ ]
> 
> So I tried replacing the this.request array as a locally defined array
> called request... Still blank
> 
> Anyone know what's going on?  I'm about to have a sub-orbital PC at this
> rate ;)
> 

Hi Dan,

The Array datatype in javascript handles property get/put differently
from other objects.  It supports numeric indices as a zero-based array,
with automatically allocation up the highest index 'PUT' so far.  That
explains the two values returned after assigning to index=1.

It's unclear from the copy of the Ecmascript standard I'm looking at,
but it appears that Array's only iterate over their numeric indexed
properties.

I suspect you want to define 'request' as a simple Object, not an array.

HTH,

Phil Turmel


-- 
Need to contact me offlist?
   Drop -webdev or you probably won't get through.



More information about the thelist mailing list