Quindi abbiamo avuto un caso in cui avremmo avuto un oggetto, dove la chiave è id (int) e il valore è la stringa. Ma abbiamo notato che la maggior parte delle volte cerchiamo id in base alla stringa, quindi abbiamo deciso di invertirlo e rendere una stringa la chiave e il valore è l'id. Perché in questo modo invece di esaminare ogni elemento e confrontare i valori, potremmo semplicemente farlo var id = storage[text];
. Di seguito sono riportati gli esempi di ciò che abbiamo fatto.
Ecco l'esempio della vecchia implementazione:
var storage = {
0 : null,
1 : "Hello",
2 : "world!",
3 : "How are you?"
}
Ecco l'esempio della nuova implementazione:
var storage = {
"null" : 0,
"Hello" : 1,
"world!" : 2,
"How are you?" : 3
}
Capisco che ora la stringa è la chiave e va bene ottenere lo stesso ID per le stesse stringhe. Ma dal momento che la stringa può essere potenzialmente piuttosto grande (poche possibilità, ma probabilmente max 1KB per stringa), c'è un limite di lunghezza che JS o Android webview mette sulle chiavi dell'oggetto?
Inoltre, questa implementazione presenta degli svantaggi? Finora non ho notato alcun problema, ma non si sa mai.