错误或我不明白 "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)

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