或者我不理解"进化"

时间:2016-09-01 09:32:08

标签: ramda.js

当单独使用Ramda.remove()时,该函数接受一个数组并输出一个数组:

const grid = {rows: [1, 2, 3]};

R.remove(1, 1, grid.rows) // output: [1,3]

当我在Ramda.remove()中使用Ramda.evolve()作为转换函数时,它变为对象{"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或是个错误?

2 个答案:

答案 0 :(得分:2)

我想象你最想要的是

rows: R.remove(1, 1)

这将为您提供从列表到该列表的缩短版本的功能。

答案 1 :(得分:0)

就在写这个问题时,我意识到了什么是错的。我必须在函数中包装R.remove或绑定args。基本上,我需要将引用传递给函数。

rows: () => R.remove(1, 1, grid.rows)