2012-07-09 20 views
11

Ho una domanda sul dizionario di Javascript. Ho un dizionario in cui vengono aggiunti dinamicamente coppie chiave-valore simili:Come trovare valore utilizzando la chiave nel dizionario javascript

var Dict = [] 
var addpair = function (mykey , myvalue) [ 
    Dict.push({ 
    key: mykey, 
    value: myvalue 
    }); 
} 

chiamerò questa funzione e passarlo chiavi e valori diversi. Ma ora voglio recuperare il mio valore in base alla chiave ma non riesco a farlo. Qualcuno può dirmi il modo corretto?

var givevalue = function (my_key) { 
    return Dict["'" +my_key +"'"]   // not working 
    return Dict["'" +my_key +"'"].value // not working 
} 

Come la mia chiave è una variabile, non posso usare Dict.my_key

Grazie.

risposta

17

Gli array in JavaScript non utilizzano stringhe come chiavi. Probabilmente troverai che il valore è lì, ma la chiave è un numero intero.

Se fai Dict in un oggetto, questo funziona:

var Dict = {}; 
var addpair = function (my_key, my_value) { 
    Dict[my_key] = my_value; 
} 
var givevalue = function (my_key) { 
    return Dict[my_key]; 
} 

La variabile my_key è già una stringa, quindi non è necessario più citazioni.

+0

Ciao posso fare il contrario trovando la chiave usando il valore –

+0

Non così facilmente. Avresti bisogno di fare un ciclo, provando ogni valore nell'oggetto finché non hai ottenuto quello giusto, quindi restituendo quella chiave. Il problema è che potrebbero esserci due valori uguali, quindi è necessario inserire il codice in addpair() per evitare duplicati. –

+0

Gli array in Javascript * do * usano le stringhe come chiavi e tutto ciò che si tenta di usare come indice di array sarà forzato a una stringa dietro le quinte. Puoi confermare questo creando un oggetto con un metodo 'toString' e usandolo come indice di array. Userà qualsiasi cosa restituisca il metodo 'toString'. –

Problemi correlati