Datocome rimuovere il valore della chiave + dal cancelletto in javascript
var myHash = new Array();
myHash['key1'] = { Name: 'Object 1' };
myHash['key2'] = { Name: 'Object 2' };
myHash['key3'] = { Name: 'Object 3' };
come faccio a rimuovere key2
, e object 2
dalla hash, che finisce in uno stato come se ho fatto:
var myHash = new Array();
myHash['key1'] = { Name: 'Object 1' };
myHash['key3'] = { Name: 'Object 3' };
elimina non fa quello che voglio;
delete myHash['key2']
mi dà semplicemente questo:
var myHash = new Array();
myHash['key1'] = { Name: 'Object 1' };
myhash['key2'] = null;
myHash['key3'] = { Name: 'Object 3' };
gli unici documenti che posso trovare sui splice
e slice
accordo con gli indicizzatori interi, che io non sono.
Edit: anche io non so che 'key2' è necessariamente in posizione [1]
UPDATE
OK leggero specchietto per le allodole, eliminare sembra fare quello che voglio in superficie, tuttavia, im utilizzando json2.js alla stringa i mio oggetto di jSON per spingere indietro al server,
dopo ive cancellato, myHash viene serializzato come:
[ { Name: 'Object 1' }, null, { Name: 'Object 3' } ]
Si tratta di un bug in json2.js? o è qualcosa che sto facendo male con l'eliminazione?
Grazie
Quello che stai facendo è aggiungere proprietà a un oggetto, che è diverso dall'aggiunta di elementi a un array/hash. Stai cercando un modo per rimuovere una proprietà, più o meno. Prova a eliminare myHash.key1, come menzionato in altri commenti. –
Se è una tabella hash, dovresti usare 'var myHash = new Object()' invece di 'var myHash = new Array()'. – cprcrack