#205

Не стесняйся строить хеши

Когда ты перемешиваешь в памяти разные структуры данных — не стесняйся строить себе по дороге полезные индексы.

const emailById = {};
const idByEmail = {};
const ids = [];
const emails = [];
// здесь мы запрашиваем "SELECT id, email FROM Users"
// и строим два индекса и два массива
// вместо одной линейной структуры

Скажешь, это расходует память? Конечно. А действительно ли у тебя столько данных в этом участке кода, что это важно? А что дороже — твое время или RAM? Ответы на оба вопроса, кстати, не всегда понятны. А об экономике оптимизации мы еще поговорим чуть позже.

Скажешь, это очевидно? Я тоже так думаю. Но очень часто сталкиваюсь с тем, что молодые коллеги стесняются создавать множество структур на одни данные, как будто есть какая-то ментальная преграда.

Так вот, ее нет: создавай столько индексов, сколько тебе хочется!

(А если хочешь круто поменеджить память, то в JavaScript есть прекрасный оператор delete, о котором незаслуженно забывают.)