Given
var myHash = new Array();
myHash['key1'] = { Name: 'Object 1' };
myHash['key2'] = { Name: 'Object 2' };
myHash['key3'] = { Name: 'Object 3' };
How do I remove key2, and object 2 from the hash, so that it ends up in a state as if I did:
var myHash = new Array();
myHash['key1'] = { Name: 'Object 1' };
myHash['key3'] = { Name: 'Object 3' };
delete doesn't do what I want;
delete myHash['key2']
simply gives me this:
var myHash = new Array();
myHash['key1'] = { Name: 'Object 1' };
myhash['key2'] = null;
myHash['key3'] = { Name: 'Object 3' };
the only docs I can find on splice and slice deal with integer indexers, which I don't have.
Edit: I also do not know that 'key2' is necessarily in position [1]
UPDATE
OK slight red herring, delete does seem to do what I want on the surface, however, I'm using json2.js to stringify my object to json for pushing back to the server,
after I've deleted, myHash gets serialized as:
[ { Name: 'Object 1' }, null, { Name: 'Object 3' } ]
Is this a bug in json2.js? or is it something I'm doing wrong with delete?
Thanks
var myHash = new Object()instead ofvar myHash = new Array().