Ramda具有insert function。但是在我的情况下,我不知道如何钻取对象并将新对象插入数组。另外,新对象应该位于数组的最后一个索引上,我们可以通过stuff["31"].length
来获得它。我的尝试太可悲了,所以我决定不展示给他们:/
资料模型:
const stuff = {
"31": [
{
"id": "11",
"title": "ramda heeeelp"
},
{
"id": "12",
"title": "ramda 123"
},
//HERE I WANT TO INSERT A NEW OBJECT - {id: "13", title: "new title"}
],
"33": [
{
"id": "3",
"title": "..."
}
],
"4321": [
{
"id": "1",
"title": "hello world"
}
]
}
最佳答案
这是直接使用镜头,最后加上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>