Где запустить с FastCGI и [закрытого] C++

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);

Компромисс (не больше памяти, но некоторые Ускорение) может быть достигнуто путем предварительной сортировки массива с последующим использованием двоичного поиска по нему, что намного быстрее, чем линейный поиск, который вы должны выполнить для неподготовленного массива.

6
задан The Unknown 30 April 2009 в 06:21
поделиться