错误或我不明白 "evolve"
bug or i don't understand "evolve"
当单独使用 Ramda.remove()
时,该函数接受一个数组并输出一个数组:
const grid = {rows: [1, 2, 3]};
R.remove(1, 1, grid.rows) // output: [1,3]
当我在 Ramda.evolve()
中使用 Ramda.remove()
作为转换函数时,它变成了对象 {"0": 1, "1": 2, "2": 3}
而不是数组 [1,3]
:
const grid = {rows: [1, 2, 3]};
R.evolve({
rows: R.remove(1, 1, grid.rows)
})(grid); // output:{"rows": {"0": 1, "1": 2, "2": 3}}
我理解 evolve
正确还是错误?
刚写完这个issue,我就意识到哪里不对了。我必须将 R.remove
包装在函数中或绑定参数。基本上,我需要将引用传递给函数。
rows: () => R.remove(1, 1, grid.rows)
我想你最想要的可能是
rows: R.remove(1, 1)
这将为您提供从列表到该列表的缩短版本的函数。
当单独使用 Ramda.remove()
时,该函数接受一个数组并输出一个数组:
const grid = {rows: [1, 2, 3]};
R.remove(1, 1, grid.rows) // output: [1,3]
当我在 Ramda.evolve()
中使用 Ramda.remove()
作为转换函数时,它变成了对象 {"0": 1, "1": 2, "2": 3}
而不是数组 [1,3]
:
const grid = {rows: [1, 2, 3]};
R.evolve({
rows: R.remove(1, 1, grid.rows)
})(grid); // output:{"rows": {"0": 1, "1": 2, "2": 3}}
我理解 evolve
正确还是错误?
刚写完这个issue,我就意识到哪里不对了。我必须将 R.remove
包装在函数中或绑定参数。基本上,我需要将引用传递给函数。
rows: () => R.remove(1, 1, grid.rows)
我想你最想要的可能是
rows: R.remove(1, 1)
这将为您提供从列表到该列表的缩短版本的函数。