Отже, у нас був випадок, коли у нас був би об’єкт, де ключ - це id (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 ставлять на клавіші об’єкта?
А також, чи має це впровадження недоліки? Наразі я не помічав жодних проблем, але ви ніколи не знаєте.