Pull to refresh
0
0
Максим @simx2rav

User

Send message
У меня есть два варианта. Один более читабельный:
const hash = new Map()

const isItemValid = (item) => item.isValid()

const addItemToCategoryInHash = (hmap, {category, id}) =>
  hmap.has(category)
    ? hmap.set(category, [id])
    : hmap.set(category, [...hmap.get(category), id])

const getHash = (array) => array
  .filter(isValid)
  .reduce(addItemToCategoryInHash, hash)


Другой быстрее из-за отсутствия лишних проходов:
const hash = new Map()

const addValidItemToCategoryInHash = (hmap, item) =>
  item.isValid()
    ? hmap.has(item.category)
      ? hmap.set(item.category, [item.id])
      : hmap.set(item.category, [...hmap.get(item.category), item.id])
    : hmap

const getHash = (array) => array.reduce(addValidItemToCategoryInHash, hash)
Всё это так, согласен, затянутые анимации сильно приедаются. Но анимации могут использоваться и для того, чтобы, допустим, скрыть факт загрузки данных и предоставить их «как-бы моментально». Тех самых полсекунды-секунды, как раз может на это хватить.
Сорри, первый комментарий на хабре, не вставились ссылки, хотя отображались в предпросмотре
Algorithmic Toolbox
Data Structures
Algorithms on Graphs
Algorithms on Strings
Advanced Algorithms and Complexity
Assembling Genomes and Finding Disease-Causing Mutations

Information

Rating
Does not participate
Location
Самара, Самарская обл., Россия
Date of birth
Registered
Activity