ItemsCases.find(item => item.sku === itmID)
(или цикл for
, подобный вашему, в зависимости от реализации) является самым быстрым, что вы можете сделать с массивом (если вы можете вернуть несколько элементов, используйте filter
вместо find
).
Используйте Map
или поиск объекта, если вам нужно быть быстрее, чем это. Это требует подготовки и памяти, но если вы ищете много, это может стоить того. Например, используя Map
:
// preparation of the lookup
const ItemsCasesLookup = new Map();
ItemsCases.forEach(item => {
const list = ItemsCasesLookup.get(item.sku);
if (list) {
list.push(item)
} else {
ItemsCasesLookup.set(item.sku, [item]);
}
});
, позже вы можете получить все предметы для одного и того же sku, как это:
ItemsCasesLookup.get(itmID);
Компромисс (не больше памяти, но некоторые Ускорение) может быть достигнуто путем предварительной сортировки массива с последующим использованием двоичного поиска по нему, что намного быстрее, чем линейный поиск, который вы должны выполнить для неподготовленного массива.
Очевидным может быть FastCGI Development Kit (для C / C ++).