Можно ли настроить Lawnchair .all на возврат объекта, индексированного по ключу?
Я использую Lawnchair для локального хранения данных на моем клиенте. Ключ, который я использую для вставки значений, создается на стороне сервера.
В настоящее время, когда я использую.all, список возвращаемых значений представляет собой массив, индексированный от 0. Затем я перебираю этот список, сохраняя возвращенные значения в литерале объекта (используя underscore.js).
var objects = {};
_.each(returnedArray, function (val) {
objects[val.key] = val;
});
Это позволяет мне использовать O(1) поиск в других частях моего кода, но требует операции O(n) для всех операций чтения из Lawnchair.
Можно ли настроить Lawnchair (или использовать другой метод / комбинацию методов) для возврата ключевого литерала индексированного объекта без итерации по всему моему набору данных?
1 ответ
Если вы открыты для использования другой библиотеки, я предложу свою одну https://bitbucket.org/ytkyaw/ydn-db/wiki/Home
Он прост в использовании и оптимизирован для производительности. Он также поддерживает IndexedDB, WebSQL и WebStorage.
Используя библиотеку, вы можете получить по ключу индекса, с O(log n)
раз, я думаю, для поиска из отсортированного массива. Вы можете устранить стоимость сериализации, только запросив ключ. Использование библиотеки можно найти здесь: http://dev.yathit.com/ydn-db/getting-started.html