Я ищу способ собрать кучу объектов JSON и сохранить их в структуре данных, которая позволяет быстро найти и быстро манипулировать, что может изменить положение в структуре для конкретного объект.Эффективная сортированная структура данных в JavaScript
Пример объекта:
{
name: 'Bill',
dob: '2014-05-17T15:31:00Z'
}
Учитывая сортировать по названию по возрастанию и д.р. убыванию, как бы вы о хранении объектов, так что если у меня есть новый объект для вставки, я знаю, очень быстро, где в структуру данных, чтобы разместить ее так, чтобы позиция объекта была сопоставлена с другими объектами?
С точки зрения поиска, мне нужно уметь сказать: «Дайте мне объект с индексом 12», и он быстро его потянет.
Я могу изменить объекты, чтобы включить данные, которые были бы полезны, например, сохранение текущего положения индекса и т. Д. В свойстве, например. {_indexData: {someNumber: 23, someNeighbour: Object}}, хотя я бы предпочел не делать этого.
Я посмотрел на b-деревья и думаю, что это, скорее всего, будет ответом, но не знал, как реализовать использование нескольких аргументов сортировки (name: ascending, dob: downcending), если я не реализовал два дерева?
У кого-нибудь есть хороший способ решить это?
Предполагая, что вы не добавляете свойство index, как бы вы знали, какой индекс использовать при извлечении записей? – Johan
@Johan В точке ввода Я думаю, мне нужен индекс, который он дал, если я вставляю a, c и b, a === index 0, b === 1 и c === 2. Альтернативно после вставки если структура может быть сплющена к массиву, я могу сделать indexOf(), чтобы найти текущий индекс, хотя он будет использовать линейный поиск, чтобы он не был таким эффективным. –
Если вы действительно обеспокоены сложностью поиска, я думаю, что простой объект с индексом как ключи будет быстрее, чем 'indexOf',' for' и т. Д. В массиве. – Johan