Это прямое использование линз, с добавлением append
в конец.
Вот как я бы это сделал:
const addObjToGroup = (groupId, newObj, data) =>
over (lensProp (groupId), append (newObj), data)
const stuff = {"31": [{"id": "11", "title": "ramda heeeelp"}, {"id": "12", "title": "ramda 123"}], "33": [{"id": "3", "title": "..."}], "4321": [{"id": "1", "title": "hello world"}]}
console .log (
addObjToGroup ('31', {id: "13", title: "new title"}, stuff)
)
<script src="//cdnjs.cloudflare.com/ajax/libs/ramda/0.26.1/ramda.js"></script>
<script>const {over, lensProp, append} = R </script>