Итак, у нас был случай, когда у нас был объект, где ключом является идентификатор (int), а значением является строка. Но мы заметили, что в большинстве случаев мы ищем идентификатор на основе строки, поэтому мы решили перевернуть его и сделать строку ключом, а значение — идентификатором. Потому что таким образом вместо того, чтобы просматривать каждый элемент и сравнивать значения, мы могли бы просто сделать var id = Storage[text];. Ниже приведены примеры того, что мы сделали.
Вот пример старой реализации:
Код: Выделить всё
var storage = {
0 : null,
1 : "Hello",
2 : "world!",
3 : "How are you?"
}
Вот пример новой реализации:
Код: Выделить всё
var storage = {
"null" : 0,
"Hello" : 1,
"world!" : 2,
"How are you?" : 3
}
Я понимаю, что теперь строка является ключом, и можно получить один и тот же идентификатор для одних и тех же строк. Но поскольку теперь строка может быть потенциально довольно огромной (малая вероятность, но, вероятно, максимум 1 КБ на строку),
есть ли ограничение длины, которое JS или Android Webview накладывает на ключи объекта?
И еще, есть ли у этой реализации недостатки? Я пока не заметил никаких проблем, но кто знает.
Подробнее здесь:
https://stackoverflow.com/questions/133 ... -js-object