Библиотека Ramda, функции assoc и splitEvery

  • Михаил
  • 8 мин. на прочтение
  • 77
  • 13 Aug 2024
  • 13 Aug 2024

Библиотека Ramda - это функциональная библиотека для JavaScript, которая предоставляет множество утилитарных функций для работы с объектами, массивами, строками и другими данными. Сегодня рассмотрим две функции, assoc и splitEvery. А далее рассмотрим и остальные функции.

1. assoc(prop, value, obj):

  • Эта функция создает новый объект, копируя все свойства из obj, но заменяя свойство prop на value.
  • Используется для обновления значения определенного свойства в объекте, не изменяя исходный объект.

2. splitEvery(n, list):

  • Эта функция разбивает список list на подсписки (chunks) размером n.
  • Она используется для разбиения массива на более мелкие части, например, для отображения элементов в группах.

теперь, если рассмотреть строку setParams(assoc('substances', selectedSubstances, params)), можно понять, что:

1. assoc('substances', selectedSubstances, params) создает новый объект params, копируя все свойства из исходного params, но заменяя свойство 'substances' на значение selectedSubstances.
2. setParams(newParams) обновляет состояние компонента, устанавливая новое значение params равным newParams, который был создан с помощью assoc.

Таким образом, при вызове setParams(assoc('substances', selectedSubstances, params)) происходит обновление свойства 'substances' в текущем состоянии компонента, не затрагивая остальные свойства. Это позволяет эффективно обновлять состояние компонента, не перезаписывая весь объект params целиком.

Ссылки

Ramda Documentation

Ramda & Functional Programming with React & TypeScript